如何在MySQL中只向新用户授予少量特权(只执行DML和DDL语句)?
我尝试了以下命令:
GRANT CREATE, ALTER, DROP, SELECT, INSERT, UPDATE, DELETE ON database.* to 'karthik' identified by 'shimoga';
但是,它显示语法错误。
您需要从语句中取出由"shimoga"标识的out。
创建用户:
CREATE USER 'karthik'@'instance' IDENTIFIED BY 'Password';
然后授予特权:
GRANT SELECT, DELETE, UPDATE, EXECUTE, INSERT, DROP, ALTER, CREATE ON databaseName.* TO 'karthik'@'instancename';
更好的解决方案是创建一个角色。并将角色分配给用户。如果您有许多用户需要类似的权限,这将使您的工作更轻松。
首先创建角色:
CREATE ROLE IF NOT EXISTS 'Developer'@'localhost';
然后为角色分配所需的权限。
GRANT SELECT, DELETE, UPDATE, EXECUTE, INSERT, DROP, ALTER ON databaseName.* TO 'Developer'@'instanceName';
最后将角色分配给您已经创建的用户:
GRANT 'Developer'@'localhost' TO 'karthik'@'instanceName';
SET DEFAULT ROLE ALL TO 'karthik'@'instanceName';