MySQL 常用用戶管理命令。

 1、添加用戶

本機訪問權限:
mysqlGRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost'
-> IDENTIFIED BY 'password' WITH GRANT OPTION;
遠程訪問權限:
mysqlGRANT ALL PRIVILEGES ON *.* TO 'username'@'%'
-> IDENTIFIED BY 'password' WITH GRANT OPTION;
另外還有一種方法是直接Insert INTO user,注意這種方法之後需要 FLUSH PRIVILEGES 讓服務器重讀授權表。

insert into user(host,user,password,ssl_cipher,x509_issuer,x509_subject)
values(‘localhost’,'xff’,password(‘xff’),”,”,”);
FLUSH PRIVILEGES;
note:1)必須要加上ssl_cipher,x509_issuer,x509_subject三列,以爲其默認值不爲空(數據庫版本爲:5.0.51b)
2)FLUSH PRIVILEGES重載授權表,使權限更改生效
3)mysql是通過User表,Db表,Host表,Tables_priv 表,Columns_priv 表這5張表實現用戶權限控制,均可以通過直接對這些表的操作以達到對用戶的管理

2、刪除用戶

drop user admin@localhost;(@不加默認爲“%”)

3、權限回收
revoke delete on test.* from admin@'localhost';

4、創建用戶授權一起實現
grant select,insert,update,delete on *.* to 'admin2′@'%'
identified by ‘admin2′ with grant option;
note:在mysql中,如果@後面的登錄範圍不同,帳號可以一樣

5、限制用戶資源

mysql> GRANT ALL ON customer.* TO 'francis'@'localhost'
-> IDENTIFIED BY 'frank'
-> WITH MAX_QUERIES_PER_HOUR 20 
-> MAX_UPDATES_PER_HOUR 10
-> MAX_CONNECTIONS_PER_HOUR 5 
-> MAX_USER_CONNECTIONS 2;

6、用戶密碼設置

使用mysqladmin:
shell> mysqladmin -u user_name -h host_name password "newpwd"
或在mysql裏執行語句:
mysql> SET PASSWORD FOR 'username'@'%'
= PASSWORD('password');

如果只是更改自己的密碼,則:
mysql> SET PASSWORD = PASSWORD(‘password’);
在全局級別使用GRANT USAGE語句(在*.*)來指定某個賬戶的密碼:
mysql> GRANT USAGE ON *.* TO 'username'@'%'
IDENTIFIED BY 'password';

或直接修改MySQL庫表:
mysql> UPDATE user SET Password = PASSWORD('bagel')
-> WHERE Host = '%' AND User = 'francis';
mysql> FLUSH PRIVILEGES;

修改root密碼:
update mysql.user set password=password(‘passw0rd’) where user=’root’;
FLUSH PRIVILEGES;

7、關於加密
mysql> select PASSWORD('password');
+-------------------------------------------+
| PASSWORD('password')                      |
+-------------------------------------------+
| *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
+-------------------------------------------+
1 row in set (0.00 sec)

mysql> select MD5('hello');
+----------------------------------+
| MD5('hello')                     |
+----------------------------------+
| 5d41402abc4b2a76b9719d911017c592 |
+----------------------------------+
1 row in set (0.00 sec)

mysql> select SHA1('abc');

-> 'a9993e364706816aba3e25717850c26c9cd0d89d'

SHA1()是爲字符串算出一個 SHA1 160比特檢查和,如RFC 3174 (安全散列算法)中所述。

8、授權精確到列
grant select (cur_url,pre_url) on test.abc to admin@localhost;

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