1、新建用戶修改用戶密碼
我的安裝配置好mysql後目前只有一個用戶就是root,並且此root用戶擁有最高權限,因此當我們需要別人也操作數據庫時,是不建議直接使用這個root用戶的。(mysql語句不區分大小寫,本人始終習慣小寫,故後續教程中語句都是小寫,當然建議是使用大寫的)
-
新建用戶的語句格式:
create user 'username'@'host' identified by 'psaaword'
-
創建用戶語句格式解析:
create user 'username'@'host' identified by 'psaaword' username:你創建用戶的用戶名; host:用戶登錄地址,指明該用戶在哪個主機上可以登陸,如果是本地用戶可用localhost, 如果想讓該用戶可以從任意遠程主機登陸,可以使用通配符%,如果是特定的主機用戶可以配置ip地址; password:該用戶的登陸密碼,密碼可以爲空,如果爲空則該用戶可以不需要密碼登陸服務器;
-
創建用戶語句實例:
/*此處以創建用戶,用戶名:goodman,密碼:123456,爲例*/ 創建本地登錄用戶goodman,密碼123456; create user 'goodman'@'localhost' identified by '123456'; 創建特定主機的登錄用戶goodman,密碼123456,主機ip爲:192.168.17.98; create user 'goodman'@'192.168.17.98' identified by '123456'; 創建可以從任意主機登錄改數據庫的登錄用戶goodman,密碼123456; create user 'goodman'@'%' identified by '123456'; 創建無登錄密碼的用戶:goodman;(兩種語句均可創建成功) create user 'goodman'@'192.168.17.98' identified by ''; create user 'goodman'@'192.168.17.98';
-
修改用戶密碼:
root用戶登錄修改別的用戶密碼語句格式: revoke psaaword for ‘username’@'host' = password('newpassword'); 將本地用戶goodman登錄密碼改爲111111 revoke psaaword for ‘goodman’@'localhost' = password('111111');
用戶登錄修改自己的登錄密碼語句格式: set psssword = password('newpassword'); 本地用戶goodman修改自己的登錄密碼改爲111111 set psssword = password('111111');
2、給用戶授權+撤銷授權
-
給用戶授權語句格式:
grant privileges on database.tablename to 'username'@'host'
以上語句給用戶授權後,這個用戶不能再給別的用戶授權,可以使用這個命令,這樣被授權的用戶也可以可別的用戶授權:
grant privileges on database.tablename to 'username'@'host' with grant option
-
給用戶授權語句格式說明:
grant privileges on database.tablename to 'username'@'host'
privileges:用戶的操作權限,如SELECT,INSERT,UPDATE等,如果要授予所的權限則使用ALL
databasename:數據庫名
tablename:表名,如果要授予該用戶對所有數據庫和表的相應操作權限則可用*****表示,如*.*
(是星號加點再加一個星號,第一個星號表示所有數據庫,點表示數據庫連接表,最後一個星號表示所有表。所有*.*
表示這個用戶可以操作所有數據庫中的所有表)
’username’@‘host’:授權給哪個用戶 -
給用戶授權實例(假設數據庫名是student,表名是name):
給本地用戶goodman授權select與insert操作權限,操作的數據庫是student中的name表 grant select,insert on sutdent.name to 'goodman'@'localhost'; 給本地用戶goodman授權所有可操作性權限,並且可以操作任意數據庫對應下的任意表 grant ALLt on *.* to 'goodman'@'localhost'; 給本地用戶goodman授權所有可操作性權限,並且可以操作student數據庫下的任意表 grant ALLt on student.* to 'goodman'@'localhost';
假如你在給用戶’goodman’@'localhost’授權的時候是這樣的(或類似的):GRANT SELECT ON sutdent.name TO ‘goodman’@'localhost,則在使用REVOKE SELECT ON . FROM ‘goodman’@'localhost;命令並不能撤銷該用戶對sutdent數據庫中name表的SELECT 操作。
相反,如果授權使用的是GRANT SELECT ON . TO ‘goodman’@‘localhost’;則REVOKE SELECT ON sutdent.name FROM ‘goodman’@‘localhost’;命令也不能撤銷該用戶對sutdent數據庫中name表的Select權限。
-
查看用戶所授權限
show grants;查看當前登錄用戶自己當前權限 show grants for 'username'@'host'; 查看特定用戶的權限 查看本地用戶goodman的權限 show grants for 'goodman'@'localhost';
-
取消用戶授權:
revoke privilege on databasename.tablename from 'username'@'host'; 取消本地用戶goodman的insert權限: revoke insert on databasename.tablename from 'goodman'@'localhost'; 取消本地用戶goodman的所以可操作權限: revoke all on databasename.tablename from 'goodman'@'localhost';
3、查看+刪除用戶
-
查看都有哪些用戶:
查看數據庫所有用戶 select user,host from mysql.user 也可使用如下語句,顯示更加詳細: select distinct concat('User: ''',user,'''@''',host,''';') as query from mysql.user;
-
刪除用戶:
drop user 'username'@'host';
4、退出斷開連接
- 退出/斷開連接:
exit;或quit;或 \q;或ctrl+c;