mysql - 如何在MySQL中只向新用户授予少量权限(仅执行DML和DDL语句)?

标签 mysql database

如何在 MySQL 中向新用户仅授予少量权限(仅执行 DML 和 DDL 语句)?

我尝试了以下命令:

GRANT CREATE, ALTER, DROP, SELECT, INSERT, UPDATE, DELETE ON database.* to 'karthik' identified by 'shimoga';

但是,它显示语法错误。

最佳答案

您需要从对账单中删除标有“shimoga”的内容。

创建用户:

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';

关于mysql - 如何在MySQL中只向新用户授予少量权限(仅执行DML和DDL语句)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36469384/

相关文章:

php - 准备好的语句不获取数据

基于数据存储值的 ASP.NET MVC 路由

php - 如何在 PHP 中从多维对象创建数组?

php - 临时切换 MySQL 列以提高可读性?

mysql - 无法解析 PhpStorm 中的有效表

mongodb - mongodb中如何设计产品类别和产品模型?

sql - INNER JOIN 不返回任何结果 - SQLite

mysql - 获取在一列中只出现一次的值的数量

c# - 我怎样才能保存/保持同步对象的内存图与数据库?

java - 如何使用 Java 连接到我的文件系统上的数据库