如何授予该sql的权限?

如何授予该sql的权限?

如何授予此权限?谢谢您的帮助!错误是:第 2 行出现错误 1142 (42000):拒绝用户“@'localhost' 执行表“student”的 CREATE 命令

CREATE TABLE STUDENT(
    ID    INT PRIMARY KEY,
    SCORE INT
);

INSERT INTO STUDENT VALUES(1,20);
INSERT INTO STUDENT VALUES(2,50);
INSERT INTO STUDENT VALUES(3,50);
INSERT INTO STUDENT VALUES(4,68);
INSERT INTO STUDENT VALUES(5,95);

SELECT 'Student ' || ID || ' has grade: '||(CASE
WHEN SCORE<20 THEN 'F'
WHEN SCORE<40 THEN 'D'
WHEN SCORE<60 THEN 'C'
WHEN SCORE<80 THEN 'B'
ELSE 'A' END)
FROM STUDENT
ORDER BY ID;

答案1

查看GRANT 语句在 MySQL 参考手册中。您必须授予创建和选择、插入、更新、删除权限。

答案2

我的粗略评论是,我从软件开发人员的角度看待应用程序初始设计阶段的 CREATE,该阶段通常会交给 SQL 服务器的 DB 管理员角色(该角色确实具有必要的 CREATE 权限)。然后,INSERT 用于填充表,SELECT 用于提取表数据。

我想不出每次创建新记录时都需要创建新表的用例。如果删除“CREATE”语句,错误应该会消失。

答案3

语法...||是布尔或。相反,请执行以下操作:

SELECT CONCAT('Student ', ID, ' has grade: ', (CASE...)) ...

至于GRANT:类似于:

GRANT SELECT, INSERT, CREATE TABLE
    ON studentdb.* TO user@localhost;

其中是您想要放置 的位置studentdb的名称。DATABASETABLE student

要运行GRANT,您需要具有足够的权限。通常,这需要成为 MySQL 的root用户。(有时是“管理员”)。

相关内容