MySQL 賬戶及許可權管理

來源:互聯網
上載者:User

MySQL初始賬戶管理

MySQL的初始賬戶如下:

[root@lx16 ~]# mysql -u root
mysql> select host,user,password from mysql.user;
+-----------+------+----------+
| host      | user | password |
+-----------+------+----------+
| lx16      | root |          |
| 127.0.0.1 | root |          |
| ::1      | root |          |
| localhost |      |          |
| lx16      |      |          |
| localhost | root |          |
+-----------+------+----------+

MySQL有兩類初始使用者:

  1. root超級賬戶:擁有全部的許可權,可以做任何事。
  2. 匿名賬戶:如何人都可以通過它串連伺服器,但它許可權很小。

在預設情況下,這些賬戶都沒有口令,因此為了安全起見,我們首先必須得為所有的root賬戶設定密碼。

設定密碼的第一種方法是用SET PASSWORD語句,假如我們現在要給'root'@'localhost'設定口令,只要執行:

mysql> set password for 'root'@'localhost'=password('*****');

設定密碼的第二種方法是直接update user許可權表,這種方法的好處是可以同時給多個賬戶設定密碼,如下面的語句可以一次修改所有root賬戶的密碼:

mysql> update mysql.user set password=password('***') where user='root';
mysql> flush privileges;

如果用update方式修改,必須明確告訴伺服器重新載入許可權表(flush privileges)

對於匿名賬戶,強烈建議將他們刪除,刪除語句如下:

mysql> drop user ''@'localhost';
mysql> drop user ''@'lx16';

執行完以上操作之後,user許可權表裡的資料如下:

mysql> select host,user,password from mysql.user;
+-----------+------+-------------------------------------------+
| host      | user | password                                  |
+-----------+------+-------------------------------------------+
| lx16      | root | *578EC7851088AC1F2A67B100540344B03BD2BA99 |
| 127.0.0.1 | root | *578EC7851088AC1F2A67B100540344B03BD2BA99 |
| ::1      | root | *578EC7851088AC1F2A67B100540344B03BD2BA99 |
| localhost | root | *578EC7851088AC1F2A67B100540344B03BD2BA99 |
+-----------+------+-------------------------------------------+

建立新賬戶

MySQL不僅要求你必須值得誰(user_name)能串連,還必須指定從什麼地方串連(host_name),也就是說即便兩個賬戶擁有相同的名字,如果他們將從不同用戶端串連,你也要為它們各自建立一個賬戶。

可以利用以下兩個萬用字元靈活配置主機名稱的限制:

  1. ‘%’ - 匹配任何多個字元
  2. ‘-’ - 配置一個字元

test賬戶可以從任意IP串連
create user 'test'@'%' identified by '***';
test賬戶只能從本地串連
create user 'test'@'localhost' identified by '***';
test賬戶只能從'192.168.2.%'網段串連
create user 'test'@'192.168.2.%' identified by '***';
還可以使用IP掩碼
create user 'test'@'192.168.2.2

許可權管理

對賬戶授權需要使用Grant語句,如果賬戶已存在,Grant語句給它授權,如果賬戶不存在,Grant語句先建立它,再給它授權。

可以通過show grants語句獲得自己的許可權:

mysql> show grants;
+----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost                                                                                                              |
+----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*578EC7851088AC1F2A67B100540344B03BD2BA99' WITH GRANT OPTION |
+----------------------------------------------------------------------------------------------------------------------------------------+

也可以通過show grants for 獲得其它使用者的許可權:

mysql>show grants for ''@'localhost';
+--------------------------------------+
| Grants for @localhost                |
+--------------------------------------+
| GRANT USAGE ON *.* TO ''@'localhost' |
+--------------------------------------+

上面顯示的是兩種特殊許可權,一種是ALL(後面的PRIVILEGES關鍵字可省略),表示所有操作的許可權(但不包括Grant許可權,Grant許可權由with grant option賦予);另一種是USAGE,一種特殊的“無許可權”的許可權。

在某些少數情況下,我們可能需要更細緻的許可權控制,MySQL可以做到在列上進行授權,下面這條語句表示把全表的select許可權給test,但只把(street,city)這兩列的update許可權給它:

grant select, update (street,city) on sampdb.member to 'test'@'localhost';

推薦閱讀:

生產環境MySQL主主同步主鍵衝突處理

MySQL + KeepAlived + LVS 單點寫入主主同步高可用架構實驗

MySQL 主主同步配置

CentOS 6.3下MySQL主從複製筆記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.