有没有办法在MySQL上使用CREATE ROLE
?
可以使用PostgreSQL创建角色,但是当我尝试使用MySQL时,它会返回以下错误消息:
#1064 - 您的SQL语法出错;检查与您的MySQL服务器版本相对应的手册,以便在第1行的'role famille'附近使用正确的语法
答案 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所述。
我希望这对某人有帮助。