1.语法: grant privileges on datebasedb.tablename to user@'%';
所有后续的语法都由此产生,很重要.
解释:
1)privileges指的是各种权利,包括insert, select, alter, deop, update,create 等等, 如果是单个,那空格就要好了,如果一次性要授权多个,那就需要逗号分开.
2)datebasedb 指的是已经存在的数据库的名字 tablename指的是已经建立好的表的名字,如果不清楚,或者不确定表的名字, 可以不写,但是数据库的名字一定要写.
3)@后面跟随的是连接方式,如果允许远程连接,@'%', 如果只是本地连接,@'localhost'.
例子:
grant select,update,insert on datebasedb.book to mark@localhost;
将 select,update,insert授权给mark
4)当然还可以授权一些函数啊,过程啊什么的:
grant execute on function datebasedb.book to mark@localhost;
意思是将函数function在book这个table上面的运行权授权给mark.
2.授权再授权,比如说授给mark的权利,mark还可以授给他儿子mark2,这时候需要在原来的语句后面加上 with grant option;
(但一般都不这么做,谁知道make2这个龟儿子拿这些权利去做了什么坏事呢)
比如:grant select,update,insert on datebasedb.book to mark@localhost with grant option;
有些小伙伴要搞事情了,说我要是只想授权Mark查一个表中的某几行怎么办(比如只能看名字不能看得到电话号码)
,那要做一些升级了:
grant select (columnname, columnname,...) on datebasedb.tablename to mark@localhost;
也就是在select后面的括号里面列出列的名字.
2.查看权利
查看当前管理者的权利: show grants;
查看某人比如说mark的权利: show grants for mark@localhost;
3.收回权利;
这个其实和授权类似,只不过把 grant 改成 revoke ,后面的介词 to 改成 from 就可以了.