初识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无访问权限
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值