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

标签 mysql privileges mariadb sql-grant

我正在尝试在最初来自 PostgreSQL 的 MariaDB 上设置数据库模式。

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']

IDENTIFIED 是可选的。如果你想像大多数人一样授予对所有表的访问权限,你可以使用星号。在特定数据库上设置 GRANT ALL 有效地防止“用户”访问其他模式对象。同样可以通过创建一个 GRANT USAGE ON .. 来完成。

关于mysql - 如何在 MariaDB (MySQL) 中正确设置所有权和权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26561218/

相关文章:

mysql - SQL 仅选择列上具有最大值的行

mysql - 如何列出数据库中某个字段的总计

java - 无法从 Java 执行 MySQL 存储过程

mysql - 如何删除以撇号开头的表格

SQL:如何仅选择任何给定组具有给定所有值的组?

php - Mysql - php 上传数据 - 错误 - 1366 不正确的字符串值

mysql - 获取 SQL 结果中列和行的总数

mysql - 我可以通过 server_ip/phpMyadmin 连接到数据库,但无法通过 xampp 连接

php - 仅通过表单安全地允许从第三方网站插入我的 MySQL 数据库表?

mysql - MariaDB 没有 ST_Distance_Sphere 的等效函数