mysql grant revoke
阅读数:166 评论数:0
跳转到新版页面分类
数据库
正文
mysql的权限分为4级:全局、数据库、表、列。
1、grant
grant privileges [columns]
on item
to user_name [identified by password]
[require ssl_options]
[with [grant option|limit_options]]
(1)privileges是由逗号分开的一组权限,下面再介绍
(2)columns可以用它对列指定权限,单列或用逗号分开的一组列的名称
(3)权限作用的数据库或表,“*.*”表示应用于所有数据库,即全局权限 ,“dbname.*”指数据库中所有的表,“dbname.tablename”作用于表,“tablename”指定特定的列。
(4)user_name,它可以包含一个主机名,如user(user@localhost)与user@somewhere.com
(5)password是用户登录时使用的密码
(6)require子句允许指定用户否通过ssl连接 ,或指定ssl选项 。
(7)with grant option表法指定的用户可以向其它人授权,with max_queries_per_hour n每小时执行的查询次数,with max_updates_per_hour n每小时执行的更新次数,with max_connections_per_hour n每小时执行的连接的数量。
权限存储在mysql.user, mysql.db, mysql.host, mysql.tables_priv, mysql.columns_priv五个表中,可以直接修改这几个表,而不使用grant命令。
示例:
(1)远程登录配置
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
2、权限的类型和级别
(1)用户权限
权限 | 应用于 |
select | 表、列 |
insert | 表、列 |
update | 表、列 |
delete | 表 |
index | 表 |
alter | 表 |
create | 数据库、表 |
drop | 数据库、表 |
alter权限通过重命名表可能会影响权限系统,但是大多数用户需要它,安全性常常与可用性与保险性的折中。
(2)管理员的权限
create temporary tables |
file |
lock tables |
process |
reload |
replication client |
relication slave |
show databases |
shutdown |
super |
file权限对普通用户非常有用,因为它可以将数据从文件载入数据库,节省时间,但是由于可能会上传数据库或潜在的密码文件,也会存在安全风险。
(3)几个特殊的权限
ALL表示(1)和(2)的所有权限,usage表示不授予权限 ,仅可登录。
3、revoke
revoke privileges [(columns)]
on item
from user_name
如果已经给出了with grant option可以按如下方式撤销它
revoke all ,grant
from user_name