如何在MariaDB(MySQL)中正确设置所有权和权限?

如何在MariaDB(MySQL)中正确设置所有权和权限?,mysql,privileges,mariadb,grant,Mysql,Privileges,Mariadb,Grant,我正在尝试在MariaDB上设置一个数据库模式,它最初来自PostgreSQL MariaDB中的正确语法是什么: ALTER DATABASE mydbname OWNER TO someuser 与授予特权类似: GRANT ALL PRIVILEGES ON DATABASE mydbname TO someotheruser 两者都适用于PostgreSQL,并且是有效的SQL-99语法。MariaDB(PHPMyAdmin前端)告诉我:#1064-您的SQL语法有错误 特权通常不是

我正在尝试在MariaDB上设置一个数据库模式,它最初来自PostgreSQL

MariaDB中的正确语法是什么:

ALTER DATABASE mydbname OWNER TO someuser
与授予特权类似:

GRANT ALL PRIVILEGES ON DATABASE mydbname TO someotheruser

两者都适用于PostgreSQL,并且是有效的SQL-99语法。MariaDB(PHPMyAdmin前端)告诉我:#1064-您的SQL语法有错误

特权通常不是SQL标准的一部分,因为每个数据库都有自己的方式来实现这一点。MySQL和MariaDB没有像postgres那样的数据库所有者。他们确实拥有允许或拒绝帐户某些权利的特权系统。第二种可能是:

GRANT ALL PRIVILEGES ON database.table TO 'user'@'host' [IDENTIFIED BY 'password']

其中,标识的属性是可选的。如果您想像大多数人一样授予对所有表的访问权,可以使用星号。在特定数据库上设置“全部授予”有效地防止“用户”访问其他架构对象。通过在..

上创建GRANT USERING,也可以实现这一点。您可以在MariaDB中使用此GRANT语句:

将mydbname.*上的所有权限授予其他用户

请查阅MariaDB关于赠款声明的手册:

请查找SQL-99的grant语句语法:


MariaDB和MySQL没有数据库所有者,而是使用如上所示的grant分配数据库权限。

感谢您的提示。你知道一些关于MariaDB中这种处理的好文档吗?据我所知,存储引擎在MySQL中不处理权限、用户和角色。这是数据库管理层的任务。Percona、MariaDB和MySQL的其他衍生物也是如此。这意味着您可以使用MySQL手册。