阅读量:2
目录
1.1 例子:允许用户zhangsan在本地查询yun1数据库中所有表的数据记录,但禁止查询其他数据库中的表的记录。
1.2 允许用户lili在所有终端远程连接mysql,并拥有全部权限。
1、授予权限(grant)
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'来源地址' [IDENTIFIED BY '密码']; #权限列表: 用于列出授权使用的各种数据库操作,以逗号进行分隔,如“select, insert, update”。使用"all"表示所有权限,可授权执行任何操作。 #数据库名.表名: 用于指定授权操作的数据库和表的名称,其中可以使用通配符"*"。 例如,使用“kgc.*"表示授权操作的对象为school数据库中的所有表。 #'用户名@来源地址': 用于指定用户名称和允许访问的客户机地址,即谁能连接、能从哪里连接。来源地址可以是域名、IP地址,还可以使用“%”通配符,表示某个区域或网段内的所有地址,如“%.xyw.com"、“192.168.80.%”等。 #IDENTIFIED BY: 用于设置用户连接数据库时所使用的密码字符串。 在新建用户时,若省略“IDENTIFIED BY"部分,则用户的密码将为空。
1.1 例子:允许用户zhangsan在本地查询yun1数据库中所有表的数据记录,但禁止查询其他数据库中的表的记录。
GRANT select ON yun1.* TO 'zhangsan'@'localhost' IDENTIFIED BY 'abc123';
1.2 允许用户lili在所有终端远程连接mysql,并拥有全部权限。
GRANT ALL PRIVILEGES ON *.* TO 'lisi'@'%' IDENTIFIED BY 'abc';
授权用户权限是all privilege。这个all privilege都有哪些权限?all privilege权限如下:
- insert(插入数据)
- select (查询数据)
- update (更新表的数据)
- delete(删除表中数据)
- create (创建库,表)
- drop(删除库,表)
- refernces
- index(建立索引)
- alter(更改表属性)
- create temp orary tableslock tables (锁表)
- execute
- create view (创建视图)
- show view(显示视图)
- create routine(创建存储过程)
- alter routine(修改存储过程)
- event(事件)
- trigger on(创建触发器)
2、 查看权限
SHOW GRANTS FOR 用户名@来源地址;
3、 撤销权限(revoke)
REVOKE 权限列表 ON 数据库名.表名 FROM 用户名@来源地址;
3.1 例子:撤销lisi的权限
REVOKE ALL ON *.* FROM 'lisi'@'%';