mysql 建立使用者命令-grant

來源:互聯網
上載者:User

標籤:pass   不能   font   部分   說明   logs   color   dog   登陸使用者   

我們在使用mysql的過程中,經常需要對使用者授權(添加,修改,刪除),在mysql當中有三種方式實現 分別是 INSERT USER表的方法、CREATE USER的方法、GRANT的方法。今天主要看一下grant方法是如何?的

分兩種情況,第一種先使用create user命令建立使用者,然後grant授權;第二種直接使用grant建立並授權;我們先看第一種如何?

查看使用者權限

show grants for 你的使用者

比如:
show grants for [email protected]‘localhost‘;

一. 建立使用者命令:
CREATE USER ‘username‘@‘host‘ IDENTIFIED BY ‘password‘;
說明:
  • username:你將建立的使用者名稱
  • host:指定該使用者在哪個主機上可以登陸,如果是本機使用者可用localhost,如果想讓該使用者可以從任意遠程主機登陸,可以使用萬用字元%
  • password:該使用者的登陸密碼,密碼可以為空白,如果為空白則該使用者可以不要求輸入密碼登陸伺服器

   

例子:
CREATE USER ‘dog‘@‘localhost‘ IDENTIFIED BY ‘123456‘;CREATE USER ‘pig‘@‘192.168.1.101_‘ IDENDIFIED BY ‘123456‘;CREATE USER ‘pig‘@‘%‘ IDENTIFIED BY ‘123456‘;CREATE USER ‘pig‘@‘%‘ IDENTIFIED BY ‘‘;CREATE USER ‘pig‘@‘%‘;
二. 授權:

     

命令:
GRANT privileges ON databasename.tablename TO ‘username‘@‘host‘ 
說明:
  • privileges:使用者的操作許可權,如SELECTINSERTUPDATE等,如果要授予所的許可權則使用ALL
  • databasename:資料庫名
  • tablename:表名,如果要授予該使用者對所有資料庫和表的相應操作許可權則可用*表示,如*.* 

例子:

GRANT SELECT, INSERT ON test.user TO ‘pig‘@‘%‘;GRANT ALL ON *.* TO ‘pig‘@‘%‘;

上面的第一行代碼錶示在test庫中的user 授權pid使用者,授權插入和選擇操作;第二行表示授權pid使用者可以操作所有的許可權;

注意:

用以上命令授權的使用者不能給其它使用者授權,如果想讓該使用者可以授權,用以下命令:

GRANT privileges ON databasename.tablename TO ‘username‘@‘host‘ WITH GRANT OPTION;
三.設定與更改使用者密碼
SET PASSWORD FOR ‘username‘@‘host‘ = PASSWORD(‘newpassword‘);

如果是當前登陸使用者用:

SET PASSWORD = PASSWORD("newpassword");
例子:
SET PASSWORD FOR ‘pig‘@‘%‘ = PASSWORD("123456");

 

四. 撤銷使用者權限命令:
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許可權。

具體資訊可以用命令SHOW GRANTS FOR ‘pig‘@‘%‘; 查看。

刪除使用者命令:
DROP USER ‘username‘@‘host‘;

 

第一種介紹完了,我們現在看第二種直接使用grant建立並授權使用者操作

授權格式:grant 許可權 on 資料庫.* to 使用者名稱@登入主機 identified by "密碼";

通過GRANT命令建立使用者

個人習慣一般用這種方法進行建立使用者,當資料庫存在使用者的時候GRANT會對使用者進行授權,但當資料庫不存在該使用者的時候,就會建立相應的使用者並進行授權。

GRANT <ALL|priv1,priv2,.....privn> ON[object] [IDENTIFIED BY ‘password‘][WITH GRANT OPTION];MAX_QUERIES_PER_HOUR countMAX_UPDATES_PER_HOUR countMAX_CONNECTIONS_PER_HOUR countMAX_USER_CONNECTIONS count

說明:priv代表許可權select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14個許可權

例子:

mysql>grant select,insert,update,delete,create,drop on test.hr to john@192.168.10.1 identified by ‘123‘;

 

說明:給主機為192.168.10.1的使用者john分配可對資料庫test的hr表進行select,insert,update,delete,create,drop等操作的許可權,並設定口令為123。

mysql>grant all privileges on test.* to joe@192.168.10.1 identified by ‘123‘;

 

說明:給主機為192.168.10.1的使用者john分配可對資料庫test所有表進行所有操作的許可權,並設定口令為123。

mysql>grant all privileges on *.* to john@192.168.10.1 identified by ‘123‘;

 

說明:給主機為192.168.10.1的使用者john分配可對所有資料庫的所有表進行所有操作的許可權,並設定口令為123。

mysql>grant all privileges on *.* to john@localhost identified by ‘123‘;

 

說明:使用者john分配可對所有資料庫的所有表進行所有操作的許可權,並設定口令為123。

四、直接向mysql.user表插入記錄(該方法個人很少用)

因為資料庫的使用者資訊都是儲存在mysql.user這張表的,所以直接對該表進行插入語句,即可完成使用者的建立;

mysql> insert into user (host,user,password) values (‘%‘,‘john‘,password(‘123‘));

 

五、完成使用者的建立後,請記得重新整理系統許可權表;

mysql>flush privileges;

 

總結:雖然建立使用者的方法有三種,個人還是傾向於第二種方法,一步到位,簡單明了;

其他的兩種方法只是有助於理解資料庫的原理而已;

 

mysql 建立使用者命令-grant

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.