mysql.user表是用來記錄用戶信息的。
=>字段host表示在這個ip範圍可以用該用戶來訪問mysql。localhost表示只有本地可以登錄,%表示在所有主機可以登錄,42.121.6.%表示ip段在42.121.6的主機可以登錄。=>user、password表示登錄的用戶名和密碼。
顯示所有用戶
select distinct user from mysql.user;查看某個用戶的權限
show grants for ‘user2′;show grants ;//查看當前用戶的權限
刷新權限
FLUSH PRIVILEGES;注意:在創建完用戶後,又刷新下權限才能用新建的用戶來登錄
創建用戶
命令: CREATE USER ’username’@'host’ IDENTIFIED BY ’password’; 說明:username - 你將創建的用戶名, host - 指定該用戶在哪個主機上可以登陸,如果是本地用戶可用localhost, 如果想讓該用戶可以從任意遠程主機登陸,可以使用通配符%. password - 該用戶的登陸密碼,密碼可以爲空,如果爲空則該用戶可以不需要密碼登陸服務器,應該用PASSWORD()函數來加密密碼.
例:用root用戶創建用戶user1,密碼爲123,本地可訪問
$ mysql -u root -p #以root用戶登錄
Enter password: #輸入root用戶密碼
mysql>create user ‘user1′@’localhost’ identified byPASSWORD(‘123’); #進入mysql後創建用戶
mysql>flush privileges; #刷新權限
mysql>exit;#exit退出mysql
$ mysql - u user1 -p #以剛創建的用戶user1登錄
Enter password: #輸入user1用戶密碼
mysql> #此時以user1用戶登錄成功
用戶授權
命令:grant privileges on databasename.tablename to ‘user’@'%’ <identified by 'password'>說明: privileges - 用戶的操作權限,如SELECT , INSERT , UPDATE 等.如果要授予所的權限則使用all;databasename - 數據庫名,tablename-表名,如果要授予該用戶對所有數據庫和表的相應操作權限則可用*表示, 如*.*.
例1.賦用戶user2/user2 予select和insert權限
mysql> grant select,insert on test.tab1 to ‘user2′ <identified by ‘user2′>;
例2.授予所有權限
mysql> grant all on test.tab1 to ‘user2 ‘<identified by ‘user2'>;
例3.授予某個數據庫中表的所有權限 (使用* 匹配 privileges可寫可不寫)
mysql> grant all(privileges) on test.*to ‘user2 ‘ identified by ‘user2′;
權限傳遞:
注意:用以上命令授權的用戶不能給其它用戶授權,如果想讓該用戶可以授權,用以下命令:
撤銷用戶權限
命令: REVOKE privilege ON databasename.tablename FROM ’username’@'host’;說明: privilege, databasename, tablename - 同授權部分.
例子: REVOKE SELECT ON *.* FROM ’pig’@'%’;
注意: 假如你在給用戶’pig’@'%’授權的時候是這樣的(或類似的):GRANT SELECT ON test.user TO ’pig’@'%’, 則在使用REVOKE SELECT ON *.* FROM ’pig’@'%’;命令並不能撤銷該用戶對test數據庫中user表的SELECT 操作.相反,如果授權使用的是GRANT SELECT ON *.* TO ’pig’@'%’;則REVOKE SELECT ON test.user FROM ’pig’@'%’;命令也不能撤銷該用戶對test數據庫中user表的Select 權限.
(表要對應)
設置mysql密碼
命令:SET PASSWORD FOR ‘username’@'host’ = PASSWORD(‘newpassword’);如果是當前登陸用戶用SET PASSWORD = PASSWORD(“newpassword”);
例1、更改自己的密碼
set password=password(’123′);
例2、更改其他用戶密碼
set password for user2 =password(’234′)
刪除用戶
命令:drop user ‘username’@'%’例如: drop user ‘user2′