【问题标题】:How to create role with MySQL database如何使用 MySQL 数据库创建角色
【发布时间】:2014-10-19 17:08:26
【问题描述】:

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

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

#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“角色家族”附近使用正确的语法

【问题讨论】:

  • 没有mysql没有角色。但是有databasejournal.com/features/mysql/…
  • 感谢您的超快速回复 ^^ 正如他在您的链接中所说,使用 MYSQL 似乎不可能,我们必须使用工作台或 SecuRich ...再次感谢您

标签: mysql roles sql-grant


【解决方案1】:

我注意到有人声称 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 5 没有角色 (https://dev.mysql.com/doc/refman/5.7/en/faqs-security.html#faq-mysql-have-builtin-rbac)。

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

【讨论】:

    【解决方案3】:

    【讨论】:

    • 这里不赞成仅包含链接的答案。请发布代码如何做到这一点,或将您的链接放在评论中。
    【解决方案4】:

    我来这里是为了寻找在 MySQL 中创建 users 的语法。从 8.1 版开始,Postgres 不再引用 usersgroups,而是在 roles 中结合了两者。从来没有使用过任何旧版本的 Postgres,角色是我在数据库上下文中对用户的看法。

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

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

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

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

    【讨论】:

    • MySQL 8+ 有角色。用户和角色都是身份验证标识符,但它们并不相同。 CREATE ROLE 设置 authid 的属性,这样您就不能默认使用它进行身份验证。 CREATE USER 和 CREATE ROLE 也有不同的权限要求,这取决于您的系统安全模型。
    猜你喜欢
    • 2010-10-08
    • 1970-01-01
    • 2019-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-02
    • 2020-06-21
    • 2015-09-01
    相关资源
    最近更新 更多