如何在MySQL数据库中创建角色

4

有没有办法在MySQL中使用CREATE ROLE创建角色?

在PostgreSQL中可以创建角色,但是当我尝试在MySQL中创建时,会返回以下错误信息:

#1064 - 您的SQL语法有误,请检查与您的MySQL服务器版本相对应的手册以获取正确的语法 near 'role famille' at line 1


1
不,MySQL没有角色。但是有一个网址可以参考:http://www.databasejournal.com/features/mysql/assigning-roles-to-mysql-users.html - Mihai
谢谢您的超快速回复^^正如在您提供的链接中所说,使用MYSQL似乎是不可能的,我们必须使用workbench或SecuRich...再次感谢您。 - Nadk
4个回答

14
我注意到有人声称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。


2
MySQL 8引入了角色:https://dev.mysql.com/doc/refman/8.0/en/roles.html 这个答案应该被标记为最佳答案。 - bjmi

8

2
我来这里是为了寻找在MySQL中创建用户的语法。从8.1版本开始,Postgres不再使用用户,而是将两者合并为角色。我从未使用过旧版本的Postgres,在数据库上下文中,我认为角色就是用户。
因此,对我来说,适当的答案应该是MySQL称之为用户,并且可以这样创建:
CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';

“MySQL手册中的账户管理报表”所述。

我希望这对某些人有所帮助。


MySQL 8+具有角色。用户和角色都是身份验证标识符,但它们并不相同。CREATE ROLE设置authid的属性,使您不能默认验证它。 CREATE USER和CREATE ROLE还具有不同的特权要求,这可能取决于您的系统安全模型而具有重要意义。 - Hyperdrive

1

1
请仅翻译文本内容:这里不赞成只回答链接。请发布如何执行操作的代码,或将您的链接放在评论中。 - Bart Friederichs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接