欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql命令行下用戶(hù)管理方法分享

 更新時(shí)間:2012年07月23日 00:50:45   作者:  
如果有mysql管理工具phpmyadmin的話(huà),我們可以通過(guò)圖形畫(huà)界面來(lái)對(duì)用戶(hù)進(jìn)行管理,但是如果沒(méi)有phpmyadmin這樣的管理工具怎么辦呢
mysql安裝后好,會(huì)有一個(gè)名字為mysql的數(shù)據(jù)庫(kù),存放用戶(hù)的表是user,mysql數(shù)據(jù)庫(kù)的用戶(hù)管理就是圍繞這個(gè)表展開(kāi)的,當(dāng)然還有一些表,例如:tables_priv,procs_priv,clumns_priv,information_schema數(shù)據(jù)庫(kù)里面的USER_PRIVILEGES等。

如果有mysql管理工具phpmyadmin的話(huà),我們可以通過(guò)圖形畫(huà)界面來(lái)對(duì)用戶(hù)進(jìn)行管理,但是如果沒(méi)有phpmyadmin這樣的管理工具怎么辦呢?這個(gè)時(shí)候,我們可以通過(guò)命令行執(zhí)行sql語(yǔ)句來(lái)管理mysql的用戶(hù)。

一,添加用戶(hù)

1,create user

語(yǔ)法:

CREATE USER user_specification
[, user_specification] ...

user_specification:
user [IDENTIFIED BY [PASSWORD] 'password']
實(shí)例:
復(fù)制代碼 代碼如下:

mysql> create user '44'@'127.0.0.1'; //創(chuàng)建一個(gè)44用戶(hù)
Query OK, 0 rows affected (0.00 sec)

mysql> create user '33'@'localhost' identified by 'aaaa'; //創(chuàng)建一個(gè)33用戶(hù),密碼為aaaa
Query OK, 0 rows affected (0.00 sec)

mysql> select * from mysql.user where user='33' or user='44'\G; //查看一下mysql下的user

create user 雖然可以創(chuàng)建用戶(hù),但是它只是創(chuàng)建用戶(hù),并沒(méi)有給用戶(hù)分配置權(quán)限,所以一般被 grant命令所取代。

2,grant

語(yǔ)法:

GRANT
priv_type [(column_list)]
[, priv_type [(column_list)]] ...
ON [object_type] priv_level
TO user_specification [, user_specification] ...
[REQUIRE {NONE | ssl_option [[AND] ssl_option] ...}]
[WITH with_option ...]

object_type:
TABLE
| FUNCTION
| PROCEDURE

priv_level:
*
| *.*
| db_name.*
| db_name.tbl_name
| tbl_name
| db_name.routine_name

user_specification:
user [IDENTIFIED BY [PASSWORD] 'password']

ssl_option:
SSL
| X509 #要求x509證書(shū)
| CIPHER 'cipher' #加密算法
| ISSUER 'issuer' #證書(shū)發(fā)行商
| SUBJECT 'subject' #主題

with_option:
GRANT OPTION
| MAX_QUERIES_PER_HOUR count #每小時(shí)最多執(zhí)行多少條sql
| MAX_UPDATES_PER_HOUR count #每小時(shí)最多更新多少條數(shù)據(jù)
| MAX_CONNECTIONS_PER_HOUR count #每小時(shí)最大的聯(lián)接數(shù)是多少
| MAX_USER_CONNECTIONS count #最大用戶(hù)聯(lián)接數(shù)
不要被上面的語(yǔ)法嚇倒,其實(shí)理解什么意思,就很容易掌握。我是這樣理解的。

grant 權(quán)限 on 應(yīng)用范圍(數(shù)據(jù)庫(kù)表,方法等) to 用戶(hù)(用@隔開(kāi),前面是用戶(hù)名后面是主機(jī)名'用戶(hù)名'@'主機(jī)名') identified by 密碼 require 要求什么的 with 對(duì)用戶(hù)的進(jìn)行的執(zhí)行sql的條數(shù)控制。

個(gè)人覺(jué)得,只要記得上面幾個(gè)紅色的關(guān)鍵詞,基本上這個(gè)命令就掌握了。
Privilege Meaning
ALL [PRIVILEGES] 所有權(quán)限
ALTER 可以使用alter table
ALTER ROUTINE 可以使用alter routine
CREATE 可以創(chuàng)建數(shù)據(jù)庫(kù)和表
CREATE ROUTINE 可以使用create routine
CREATE TEMPORARY TABLES 可以使用臨時(shí)表
CREATE USER 可以對(duì)用戶(hù)進(jìn)添加,刪除,重命名,撤銷(xiāo)權(quán)限
CREATE VIEW 可以創(chuàng)建和修改視圖
DELETE 可以刪除數(shù)據(jù)
DROP 可能刪除數(shù)據(jù)庫(kù),表,視圖等
EVENT 可以使用事件高度器
EXECUTE 可以執(zhí)行routine
FILE 可以在服務(wù)器讀寫(xiě)文件
GRANT OPTION 用戶(hù)有權(quán)對(duì)自己添加的用衣授權(quán)
INDEX 可以創(chuàng)建,刪除索引
INSERT 可以插入
LOCK TABLES 可以鎖定表
PROCESS 可以使用SHOW PROCESSLIST來(lái)查看mysql當(dāng)前用戶(hù)的執(zhí)行sql情況
REFERENCES Not implemented
RELOAD 可以使用刷新功能
REPLICATION CLIENT 用戶(hù)可以進(jìn)行主從同步
REPLICATION SLAVE 主從同步時(shí),從服務(wù)器可以從主服務(wù)器讀取binary log
SELECT 可以查找
SHOW DATABASES 可以使用show databases來(lái)查看所有數(shù)據(jù)庫(kù)
SHOW VIEW 可以使用show view來(lái)查看視圖
SHUTDOWN 可以使用mysqladmin中的參數(shù)shutdown
SUPER Enable use of other adminstrative operations such as CHANGE MASTER TO, KILL, PURGE BINARY LOGS, SET GLOBAL, and mysqladmin debug command
TRIGGER 可以使用觸發(fā)器
UPDATE 可以進(jìn)行理會(huì)新操作
USAGE 無(wú)特權(quán)

實(shí)例:
復(fù)制代碼 代碼如下:

grant all ON test.* TO 'test'@'localhost'; //test用戶(hù)擁有test數(shù)據(jù)庫(kù)下的所有操作
grant select,update on test.user to 'test'@'localhost'; //test用戶(hù)可以對(duì)test數(shù)據(jù)庫(kù)下user表,進(jìn)行查找和更新操作
//test用戶(hù)的的密碼是111111,對(duì)user表中的name字段有讀取權(quán)限,對(duì)id,name有更新權(quán)限
grant select(name),update(id,name) on test.user to 'test'@'localhost' identified by '111111';
//test用戶(hù)對(duì)所有數(shù)據(jù)庫(kù)擁有所有權(quán)力,并且要求ssl加密
grant all privileges on *.* to 'test'@'%' identified by '123456' require ssl

當(dāng)添加完用戶(hù)后,別忘 了 flush privileges;

二,刪除用戶(hù)

語(yǔ)法:

DROP USER user [, user] ...
實(shí)例:
復(fù)制代碼 代碼如下:

drop user 'test2'@'localhost'; //當(dāng)用drop刪除用戶(hù)進(jìn),tables_priv,procs_priv等表中的數(shù)據(jù)也會(huì)被刪除

在這里為什么要用'test2'@'localhost'當(dāng)用戶(hù)名,而不是直接test2呢,因?yàn)閙ysql.user這張表,是根用戶(hù)名和host名決定一個(gè)用戶(hù),你可查看一下表結(jié)構(gòu)就知道了。

show create table mysql.user\G;你會(huì)發(fā)現(xiàn)有這個(gè)東西PRIMARY KEY (`Host`,`User`),表示聯(lián)合主鍵

三,修改用戶(hù)

語(yǔ)法:

RENAME USER old_user TO new_user
[, old_user TO new_user] ...
實(shí)例:
復(fù)制代碼 代碼如下:

rename user 'test2'@'localhost' to 'test'@'%';

四,修改權(quán)限

語(yǔ)法:

REVOKE
priv_type [(column_list)]
[, priv_type [(column_list)]] ...
ON [object_type] priv_level
FROM user [, user] ...

REVOKE ALL PRIVILEGES, GRANT OPTION
FROM user [, user] ...
grant就給用戶(hù)分配權(quán)限,revoke是把權(quán)限從用戶(hù)的身上拿走。

實(shí)例:
復(fù)制代碼 代碼如下:

mysql> revoke update on *.* from 'tank'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> select mysql.user.update_priv from mysql.user where user='tank' and host='localhost';
+-------------+
| update_priv |
+-------------+

+-------------+
1 row in set (0.00 sec)

去掉tank@localhost這個(gè)用戶(hù)的更新功能,這個(gè)是去掉一個(gè)權(quán)限,如果我要全部去掉怎么辦呢,一個(gè)一個(gè)寫(xiě)太麻煩了,看下面的一個(gè)例子
復(fù)制代碼 代碼如下:

mysql> revoke all privileges ,grant option from '33'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

用掉33@localhost這個(gè)用戶(hù)的所有權(quán)限

作者:海底蒼鷹

相關(guān)文章

最新評(píng)論