MySQL:权限控制
2023-12-30 05:21:20
要授予用户帐户权限,可以用GRANT
命令。有撤销用户的权限,可以用REVOKE
命令。这里以 MySQl 为例,介绍权限控制实际应用。
GRANT
授予权限语法:
GRANT privilege,[privilege],.. ON privilege_level
TO user [IDENTIFIED BY password]
[REQUIRE tsl_option]
[WITH [GRANT_OPTION | resource_option]];
简单解释一下:
- 在
GRANT
关键字后指定一个或多个权限。如果授予用户多个权限,则每个权限由逗号分隔。 ON privilege_level
确定权限应用级别。MySQL 支持 global(*.*
),database(database.*
),table(database.table
)和列级别。如果使用列权限级别,则必须在每个权限之后指定一个或逗号分隔列的列表。user
是要授予权限的用户。如果用户已存在,则GRANT
语句将修改其权限。否则,GRANT
语句将创建一个新用户。可选子句IDENTIFIED BY
允许您为用户设置新的密码。REQUIRE tsl_option
指定用户是否必须通过 SSL,X059 等安全连接连接到数据库服务器。- 可选
WITH GRANT OPTION
子句允许您授予其他用户或从其他用户中删除您拥有的权限。此外,您可以使用WITH
子句分配 MySQL 数据库服务器的资源,例如,设置用户每小时可以使用的连接数或语句数。这在 MySQL 共享托管等共享环境中非常有用。
REVOKE
撤销权限语法:
REVOKE privilege_type [(column_list)]
[, priv_type [(column_list)]]...
ON [object_type] privilege_level
FROM user [, user]...
简单解释一下:
- 在
REVOKE
关键字后面指定要从用户撤消的权限列表。您需要用逗号分隔权限。 - 指定在
ON
子句中撤销特权的特权级别。 - 指定要撤消
FROM
子句中的权限的用户帐户。
GRANT
和 REVOKE
可在几个层次上控制访问权限:
- 整个服务器,使用
GRANT ALL
和REVOKE ALL
; - 整个数据库,使用
ON database.*
; - 特定的表,使用
ON database.table
; - 特定的列;
- 特定的存储过程。
新创建的账户没有任何权限。账户用 username@host
的形式定义,username@%
使用的是默认主机名。MySQL 的账户信息保存在 mysql 这个数据库中。
USE mysql;
SELECT user FROM user;
下表说明了可用于GRANT
和REVOKE
语句的所有允许权限:?
创建账户
CREATE USER myuser IDENTIFIED BY 'mypassword';
修改账户名
UPDATE user SET user='newuser' WHERE user='myuser';
FLUSH PRIVILEGES;
-- 重命名 RENAME USER 原来名字 TO 新的名字
RENAME USER bing1 TO bing2
删除账户
DROP USER myuser;
查看权限
SHOW GRANTS FOR myuser;
授予权限
GRANT SELECT, INSERT ON *.* TO myuser;
-- 用户授权ALL PRIVILEGES全部权限,库,表
-- ALL PRIVILEGES除了给别人授权,其他都能够干
GRANT ALL PRIVILEGES ON *.* TO myuser;
删除权限
REVOKE SELECT, INSERT ON *.* FROM myuser;
更改密码
SET PASSWORD FOR myuser = 'mypass';
?
文章来源:https://blog.csdn.net/AI_BING_/article/details/135254471
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!