Mysql权限操作语句
- mysql授权语句语法
- 用户未存在
- 用户已存在
- mysql回收权限语句
- 回收语句语法
- 授权远程连接(用于搭建公共数据库,开放连接)
mysql授权语句语法
用户未存在
-- 授权并创建用户语法
grant all privileges on *.* to '用户名'@'主机地址' identified by '密码' with grant option
#all privileges:代表全部权限。(insert|update|delete|select|alter|create)等
#*.*:代表全部数据据库的全部表。修改成A数据库的全部表为(A.*)
#用户名:登录mysql的用户名称
#主机地址:一般为localhost,指定本地的用户。如果授权其他地址的用户则填写对应的IP地址,或者直接设置为%,所有地址都可以。
#identified by 密码:代表直接创建用户,密码为by后面的字符。如果不加上identified by 密码,代表直接去mysql数据库下的user表查找该用户进行授权。
#with grant option:代表该用户可以将自己拥有的权限赋予其他用户。
备注:如果用户不存在,授权语句也没有identified by ‘密码’,则会报错Can’t find any matching row in the user table。另外补充,public关键字可以代替所有用户。(grant xx on xx to public)
提示:如果授权语句执行后,修改不生效。就执行刷新语句。
FLUSH PRIVILEGES;
用户已存在
grant all privileges on *.* to '用户名'@'主机地址' with grant option
mysql回收权限语句
回收语句语法
REVOKE 相关权限,多个用逗号分开 ON 对象类型和对象名称 FROM 用户名和主机地址;
例子:备注(前提是该用户拥有此权限,不然会报错)
There is no such grant defined for user ‘text’ on host ‘localhost’
-- 回收本机下的text用户的所有数据库的所有表权限
REVOKE ALL PRIVILEGES ON *.* FROM 'text'@'localhost';
-- 回收本机下text用户查询数据库A中a表的权限
REVOKE select ON table A.a FROM 'text'@'localhost';
-- 回收本机下text用户查新增和删除数据库A中a表的权限
REVOKE insert,delete ON table A.a FROM 'text'@'localhost';
-- 回收本机下text用户和dev用户新增和删除数据库A中a表的权限
REVOKE insert,delete ON table A.a FROM 'text'@'localhost','dev'@'localhost';
-- 回收本机下所有用户新增和删除数据库A中a表的权限
REVOKE insert,delete ON table A.a FROM public;
授权远程连接(用于搭建公共数据库,开放连接)
mysql自带一个主机地址为通配符%的root用户。我们只需要将该root用户授权即可。
grant all privileges on *.* to 'root'@'%' with grant option;
FLUSH PRIVILEGES; -- 刷新权限
又或者指定网段。例如:指定在192.168.1.xxx网段下,才可以使用root用户登录。(密码默认为root)
grant all privileges on *.* to 'root'@'192.168.1.%' with grant option;
FLUSH PRIVILEGES; -- 刷新权限
又或者创建一个新用户dev,密码为root。专门用于192.168.1.xx的非主机地址访问。
grant all privileges on *.* to 'dev'@'192.168.1.%' identified by 'root' with grant option;
FLUSH PRIVILEGES; -- 刷新权限