MySQL 权限管理

【%、localhost、'127.0.0.1'】
%表示允许远程登录,localhost表示只允许本机登录,'127.0.0.1'表示只允许本机IP为'127.0.0.1'的登录。


【查看MySQL用户权限】
show grants for syy@'localhost'; // 如果用户名后面不接@'localhost',则默认是用户名@'%'的形式。


【删除MYSQL用户】
#删除了用户,对应的权限也没有了!
drop user  syy@'%';


【撤销MYSQL用户权限】
#撤销用户的所有权限
REVOKE ALL PRIVILEGES ON  `test`.* FROM  'syy'@'%';


#撤销用户的grant权限
REVOKE GRANT OPTION ON  `test`.* FROM  'syy'@'%';


【新建MYSQL用户】
create user  syy@'%';


# 也可以创建用户时直接设置密码
create user  syy@'%' identified by '123456';


【MySQL用户授权】
#授予指定的权限(注意:授予指定权限之前,一定要撤销用户的ALL权限,否则这个用户还是ALL权限。)
GRANT 
SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER , 
CREATE TEMPORARY TABLES, CREATE VIEW, EVENT, TRIGGER, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EXECUTE 
ON  `test`.* TO  'syy'@'%';


#只授予登录权限
GRANT USAGE ON  `test`.* TO  'syy'@'%';

# 授予所有权限。ALL允许做任何事(和root一样),USAGE只允许登录,其它什么也不允许做。
GRANT ALL ON `test`.* TO 'syy'@'%'

# 授予所有权限、以及grant权限
GRANT ALL ON `test`.* TO 'syy'@'%' with grant option;(with grant option表示授予GRANT权限,一般不授予这个权限。)

#一句SQL实现新建MYSQL用户并授权
grant all on test.* to 'syy'@'%' identified by '123456' with grant option;

注释: 其中 test 为数据库 

 GRANT命令说明:
    ALL PRIVILEGES 是表示所有权限,你也可以使用select、update等权限。

    ON 用来指定权限针对哪些库和表。

    *.* 中前面的*号用来指定数据库名,后面的*号用来指定表名。

    TO 表示将权限赋予某个用户。

    syy@’localhost’ 表示jack用户,@后面接限制的主机,可以是IP、IP段、域名以及%,%表示任何地方。注意:这里%有的版本不包括本地,以前碰到过给某个用户设置了%允许任何地方登录,但是在本地登录不了,这个和版本有关系,遇到这个问题再加一个localhost的用户就可以了。

    IDENTIFIED BY 指定用户的登录密码。

    WITH GRANT OPTION 这个选项表示该用户可以将自己拥有的权限授权给别人。注意:经常有人在创建操作用户的时候不指定WITH GRANT OPTION选项导致后来该用户不能使用GRANT命令创建用户或者给其它用户授权。

备注:可以使用GRANT重复给用户添加权限,权限叠加,比如你先给用户添加一个select权限,然后又给用户添加一个insert权限,那么该用户就同时拥有了select和insert权限。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章