初识MySQL(10)权限控制与安全管理

1.访问控制

在比较复杂的数据库系统中,对于各个用户的权限管理是非常重要的,有一些用户可以对数据库进行查找操作,但我们不想让他有对表进行更改的权限。但是有一些用户又需要有更改表甚至创建表与删除表
的权限,因此每个用户的权限不能一概而论,应该根据实际情况进行分配。

2.管理用户

创建用户账号:

CREATE USER ben IDENTIFIED BY '123455';

CREATE USER语句用于创建账户,IDENTIFIED BY表示用户口令为纯文本。

账户的重命名:

RENAME USER ben TO newben;

删除用户账号:

DROP USER newben;

3.设置访问权限

在创建用户账号之后,接着就必须给他们分配访问权限。刚刚创建好的帐号没有访问权限,能登录MySQL但是不能看到数据与执行任何操作。
查看用户当前的权限:

SHOW GRANTS FOR newben;

授予用户权限使用GRANT语句:

GRANT SELECT ON crashcourse.* TO newben;

这个语句允许用户newben在crashcourse.*(crashcourse数据库的所有表)中拥有SELECT权限。

撤销用户的某一权限使用REVOKE语句。

使用GRANT与REVOKE对用户权限进行操作的几种情况:
(1)整个服务器,使用GRANT ALL和REVOKE ALL;
(2)整个数据库,使用ON database.*;
(3)特定的表,使用ON database.table;
(4)特定的列;
(5)特定的存储过程。

MySQL中的可以授予或撤销的权限:

权限 说明
ALL 除了GRANT OPTION之外的所有权限
ALTER 使用ALTER TABLE 的权限
ALTER ROUTINE 使用ALTER PROCEDUCE和DROP PROCEDUCE的权限
CREATE 使用CREATE TABLE的权限
CREATE ROUTINE 使用CREATE PROCEDUCE的权限
CREATE TEMPORARY TABLES 使用CREATE TEMPORARY TABLES的权限
CREATE USER 使用CREATE USER的权限
CREATE VIEW 使用CREATE VIEW的权限
DELETE 使用DELETE的权限
DROP 使用DROP的权限
EXECUTE 使用CALL和存储过程的权限
FILE 使用SELECT INTO OUTFILE和LOAD DATA INFILE的权限
GRANT OPTION 使用GRANT和REVOKE的权限
INDEX 使用CREATE INDEX 和DROP INDEX的权限
INSERT 使用INSERT的权限
LOCK TABLES 使用LOCK TABLES的权限
PROCESS 使用SHOW FULL PROCESSLIST的权限
RELOAD 使用FLUSH的权限
REPLICATION CLIENT 服务器位置的访问
REPLICATION SLAVE 由复制从属使用
SELECT 使用SELECT的权限
SHOW DATABASES 使用SHOW DATABASES的权限
SHOW VIEW 使用SHOW CREATE VIEW的权限
SHUTDOWN 使用mysqladmin shutdown(用来关闭MySQL)
SUPER 使用CHANGE MASTER、KILL、LOGS、PURGE、MASTER和SET GLOBAL
UPDATE 使用UPDATE的权限
USAGE 无访问权限
发布了12 篇原创文章 · 获赞 0 · 访问量 235

猜你喜欢

转载自blog.csdn.net/weixin_41902922/article/details/104094060
今日推荐