2016年3月28日 星期一

MySQL資料庫權限設定

MySQL資料庫授權或刪除使用者權限有分成本機及遠端,因為MySQL資料庫權限設定會將帳號的權限設定給那些主機,設定localhost的話,那該帳號只能在MySQL資料庫本機使用,不過要開放給遠端主機連線MySQL資料庫主機的話,那就必須將帳號設定給遠端主機使用,下方介紹方式都是授權或刪除所有權限,MySQL權限有很多可以參考下表

資料庫(DateBase)十五種權限
ALL PRIVILEGES、ALTER、CREATE、DELETE、DROP、FILE、INDEX、INSERT、PROCESS、REFERENCES、RELOAD、SELECT、SHUTDOWN、UPDATE、USAGE

資料表(Table)八種權限
SELECT、INSERT、UPDATE、DELETE、CREATE、DROP、INDEX、ALTER

資料欄(column)三種權限
SELECT INSERT UPDATE

授權使用者權限
授權使用者帳號jerry有本機及遠端管理的權限,MySQL資料庫遠端管理是要針對IP位址設定,就是假如設定jerry給遠端192.168.1.2的IP位址使用,那192.168.1.3的IP位址就不可以遠端管理,就必需再開啟給該IP位址的遠端管理權限。以下示範如何開啟本機及遠端。

MySQL資料庫授權使用者權限指令說明
grant
授權
all privileges
所有管理權限
*.*
所有資料庫
localhost
本機位址
192.168.1.2
遠端連線IP位址
jerry
授權帳號
Aa1234567
授權密碼
管理權限範例為所有權限,至於實際情況,請依需求設定。
[root@localhost ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.52 Source distribution

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> grant all privileges on *.* to 123@localhost identified by '密碼';
Query OK, 0 rows affected (0.00 sec)     //建立jerry本機管理權限

mysql> grant all privileges on *.* to 123@localhost identified by '密碼';
Query OK, 0 rows affected (0.01 sec)   //建立 'xxx' 帳號遠端管理


mysql> select host,user from mysql.user;   //列出MySQL所有授權帳號
+-----------------------+-------+
| host                  | user  |
+-----------------------+-------+
| 127.0.0.1             | root  |
192.168.1.2           | 123 |       //帳號jerry遠端管理授權
| localhost             |       |
localhost             | 123 |       //帳號jerry本機管理授權
| localhost             | root  |
| localhost.localdomain |       |
| localhost.localdomain | root  |
+-----------------------+-------+
7 rows in set (0.00 sec)

mysql> quit   //離開MySQL
Bye
[root@localhost ~]#

沒有留言:

張貼留言