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權限。

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