MYSQL 用戶的操做

MYSQL 用戶的受權
爲何要受權?
MYSQL 的默認用戶是 root ,因爲 root 的權限太大,也是爲了安全方面考慮,通常只在管理數據庫的時候才用,若是在項目中要鏈接一個MYSQL數據庫,則建議新建一個權限較小的用戶
做用:限制指定的用戶能夠登錄哪臺主機、訪問哪一個數據庫和對某個數據庫有什麼樣的權限。mysql

1、建立用戶    (mysql 不區分大小寫)

    命令格式: create user  "username"@"host" identified by "password";
            --username   你將建立的用戶名
            --host       指定該用戶能夠在哪一個主機上登錄,若是是本地用戶則能夠用localhost,若是想讓該用戶能夠任意遠程主機登錄,則能夠使用通配符 「%」 
            --password   該用戶的密碼,密碼能夠爲空,爲空則表明用戶不須要密碼就能夠登錄
            下面寫幾種例子:
                                        create user "china"@"192.168.8.128" identified by "123456";
                                        create user "china"@"localhost" identified by "123456";
                                        create user "china"@"%" identified by "123456";
                                        create user "china"@"%" identified by "";
                                        create user "china"@"%";

2、受權sql

命令的格式: grant privileges on dataname.tablename to "username"@"host" ;
    --privileges      用戶的權限,如 select   insert    update 等, 若是要授予全部權限的話就使用 all 
    --dataname.tablename   庫.表名   指定該用戶對哪一個數據庫的表有操做的權限,若是要授予該用戶對全部數據庫和表的相應操做權限則可用*表示, 如*.*
    在客戶端登錄時: mysql -h"服務端的IP"  -u"指定的用戶"  -p"密碼"
    grant select,insert on db1.table1 to "china"@"localhost" ;
    grant all on db1.table1 to "chian"@"localhost";
注意:用以上名令受權的用戶是沒有受權的權限,讓該用戶擁有受權的權限,能夠在後面加上  with grant option
                    例子:grant all on db1.table1 to "china"@"localhost"  with grant option;

3、設置與更改用戶密碼數據庫

命令格式: set password for "username"@"host" = password ("new password");  這是未登錄的用戶
                                         set password = password ("new password");

4、撤銷用戶的權限緩存

命令格式: revoke privileges on db1.table1 from "username"@"host";
            例子: revoke select on  *.*  from "china"@"%";

            注意:  撤銷權限後,用戶名會保存下來,但若在撤銷權限前把用戶給刪除了的話,那麼用戶的權限也會刪除

5、刪除用戶安全

命令格式: drop user  "username"@"host";

附錄:
查看用戶的權限: show grants for "username";服務器

權限列表:
ALTER: 修改表和索引。
CREATE: 建立數據庫和表。
DELETE: 刪除表中已有的記錄。
DROP: 拋棄(刪除)數據庫和表。
INDEX: 建立或拋棄索引。
INSERT: 向表中插入新行。
REFERENCE: 未用。
SELECT: 檢索表中的記錄。
UPDATE: 修改現存表記錄。
FILE: 讀或寫服務器上的文件。
PROCESS: 查看服務器中執行的線程信息或殺死線程。
RELOAD: 重載受權表或清空日誌、主機緩存或表緩存。
SHUTDOWN: 關閉服務器。
ALL: 全部權限,ALL PRIVILEGES同義詞。
USAGE: 特殊的 "無權限" 權限。
用 戶帳戶包括 "username" 和 "host" 兩部分,後者表示該用戶被容許從何地接入。tom@'%' 表示任何地址,默承認以省略。還能夠是 "tom@192.168.1.%"、"tom@%.abc.com" 等。數據庫格式爲 db@table,能夠是 "test." 或 ".*",前者表示 test 數據庫的全部表,後者表示全部數據庫的全部表。
子句 "WITH GRANT OPTION" 表示該用戶能夠爲其餘用戶分配權限ide

相關文章
相關標籤/搜索