Mysql學習積累之二[網摘收藏個人學習參考]

ghost丶桃子發表於2016-05-20

繼續前一篇,這裡是一些常用的管理命令,也為轉載,所有權歸原作者所有,此處僅作參考學習.

詳見:http://www.centos.bz/2011/09/mysql-user-management-commands/

MySQL常用使用者管理命令

1、新增使用者

本機訪問許可權:

  1. mysql> GRANT ALL PRIVILEGES ON *.* TO `username`@`localhost`
  2. -> IDENTIFIED BY `password` WITH GRANT OPTION;

遠端訪問許可權:

  1. mysql> GRANT ALL PRIVILEGES ON *.* TO `username`@`%`
  2. -> IDENTIFIED BY `password` WITH GRANT OPTION;

另外還有一種方法是直接Insert INTO user,注意這種方法之後需要 FLUSH PRIVILEGES 讓伺服器重讀授權表。

  1. insert into user(host,user,password,ssl_cipher,x509_issuer,x509_subject)
  2. values(‘localhost’,`xff’,password(‘xff’),”,”,”);
  3. 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、刪除使用者

  1. drop user admin@localhost;(@不加預設為“%”)

3、許可權回收

  1. revoke delete on test.* from admin@`localhost`;

4、建立使用者授權一起實現

  1. grant select,insert,update,delete on *.* to `admin2′@`%`
  2. identified by ‘admin2′ with grant option;

note:在mysql中,如果@後面的登入範圍不同,帳號可以一樣

5、限制使用者資源

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

6、使用者密碼設定

使用mysqladmin:

  1. shell> mysqladmin -u user_name -h host_name password “newpwd”

或在mysql裡執行語句:

  1. mysql> SET PASSWORD FOR `username`@`%`
  2. = PASSWORD(`password`);

如果只是更改自己的密碼,則:

  1. mysql> SET PASSWORD = PASSWORD(‘password’);

在全域性級別使用GRANT USAGE語句(在*.*)來指定某個賬戶的密碼:

  1. mysql> GRANT USAGE ON *.* TO `username`@`%`
  2. IDENTIFIED BY `password`;

或直接修改MySQL庫表:

  1. mysql> UPDATE user SET Password = PASSWORD(`bagel`)
  2. -> WHERE Host = `%` AND User = `francis`;
  3. mysql> FLUSH PRIVILEGES;

修改root密碼:

  1. update mysql.user set password=password(‘passw0rd’) where user=’root’;
  2. FLUSH PRIVILEGES;

7、關於加密

  1. mysql> select PASSWORD(`password`);
  2. +——————————————-+
  3. | PASSWORD(`password`)                      |
  4. +——————————————-+
  5. | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
  6. +——————————————-+
  7. 1 row in set (0.00 sec)
  8.  
  9. mysql> select MD5(`hello`);
  10. +———————————-+
  11. | MD5(`hello`)                     |
  12. +———————————-+
  13. | 5d41402abc4b2a76b9719d911017c592 |
  14. +———————————-+
  15. 1 row in set (0.00 sec)
  16.  
  17. mysql> select SHA1(`abc`);
  18.  
  19. -> `a9993e364706816aba3e25717850c26c9cd0d89d`

SHA1()是為字串算出一個 SHA1 160位元檢查和,如RFC 3174 (安全雜湊演算法)中所述。

8、授權精確到列

  1. grant select (cur_url,pre_url) on test.abc to admin@localhost;

文章來源:http://www.ha97.com/4109.html

轉載請註明出處:http://www.cnblogs.com/haochuang/


相關文章