如何用MySQL数据库创建角色

时间:2014-10-19 17:08:26

标签: mysql roles grant

有没有办法在MySQL上使用CREATE ROLE

可以使用PostgreSQL创建角色,但是当我尝试使用MySQL时,它会返回以下错误消息:

  

#1064 - 您的SQL语法出错;检查与您的MySQL服务器版本相对应的手册,以便在第1行的'role famille'附近使用正确的语法

4 个答案:

答案 0 :(得分:7)

我注意到有人声称MySQL没有角色实现,所以我想补充一点,MySQL 8.0有一个有效的角色实现:

示例:

CREATE ROLE r1;
GRANT r1 TO myuser@localhost;
GRANT SELECT, INSERT,UPDATE ON db1.* TO r1;

参考: https://dev.mysql.com/doc/refman/8.0/en/roles.html

您可以在此处下载源代码和经过测试的二进制文件: https://dev.mysql.com/downloads/mysql/

此时你必须选择"开发版本"和MySQL服务器8.0.1

答案 1 :(得分:5)

MySQL 5没有ROLES https://dev.mysql.com/doc/refman/5.7/en/faqs-security.html#faq-mysql-have-builtin-rbac)。

如果您正在寻找与MySQL兼容的RDBMS,那就是MariaDB。 MariaDB具有MySQL缺乏的基于角色的访问控制,并且是开源的。

答案 2 :(得分:1)

答案 3 :(得分:1)

我来到这里寻找在MySQL中创建用户的语法。从版本8.1开始,Postgres不再引用用户,而是在角色中结合使用。从未使用任何旧版本的Postgres,角色是我对数据库环境中用户的看法。

所以对我来说,合适的答案就是MySQL称他们为用户,他们可以像这样创建:

CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';

,如“Account Management Statements” in the MySQL manual所述。

我希望这对某人有帮助。