1. 程式人生 > >mysql 建立使用者命令-grant

mysql 建立使用者命令-grant

我們在使用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 count

MAX_UPDATES_PER_HOUR count

MAX_CONNECTIONS_PER_HOUR count

MAX_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的使用方法

log 源代碼 簡單 更新 ron temporary drop all ces 本文實例,運行於 MySQL 5.0 及以上版本。 MySQL 賦予用戶權限命令的簡單格式可概括為: grant 權限 on 數據庫對象 to 用戶 一、grant 普通數據用戶,查

2.MySQL授權命令grant的使用方法

comm 開發 層次 common pda sta 一個 rar col 本文實例,運行於 MySQL 5.0 及以上版本。 MySQL 賦予用戶權限命令的簡單格式可概括為: grant 權限 on 數據庫對象 to 用戶 一、grant 普通數據用戶,查詢、插入

[轉載] mysql 建立使用者命令-grant

mysql 建立使用者命令-grant 我們在使用mysql的過程中,經常需要對使用者授權(新增,修改,刪除),在mysql當中有三種方式實現 分別是 INSERT USER表的方法、CREATE USER的方法、GRANT的方法。今天主要看一下grant方法是如何實現的 分兩種情況,第一種

mysql中授權(grant)和撤銷授權(revoke)等命令的用法詳解[轉]

MySQL的許可權系統圍繞著兩個概念:  認證->確定使用者是否允許連線資料庫伺服器  授權->確定使用者是否擁有足夠的許可權執行查詢請求等。 如果認證不成功的話,哪麼授權肯定是無法進行的。 revoke 跟 grant 的語法差不多,只需要把關鍵字 “to”

mysql 常用的 grant 許可權命令【簡明】

賦予所有的操作許可權 grant all on ... to 使用者名稱...... 賦予所有資料庫的所有表的操作許可權 grant ... on *.* to 使用者名稱...... 賦予某個資料庫的所有表 grant ... on 資料庫名稱.'*' to 使用者名稱

mysql 建立使用者命令-grant

我們在使用mysql的過程中,經常需要對使用者授權(新增,修改,刪除),在mysql當中有三種方式實現 分別是 INSERT USER表的方法、CREATE USER的方法、GRANT的方法。今天主要看一下grant方法是如何實現的 分兩種情況,第一種先使用create user命令建立使用者,然後grant

mysql 常用命令

mysql命令說明BEGIN COMMITmysql在客戶端執行更新、刪除開啟一個事務:BEGIN;UPDATE driver SET phone=‘11601620000‘ WHERE id=1;--ROLLBACK;COMMIT;DATE_FORMAT%Y-%m-%d %H-%iIFNULL(price,

mysql基本命令(轉)

表達 local border base l數據庫 moni employee 哪些 roo 1、連接Mysql 格式: mysql -h主機地址 -u用戶名 -p用戶密碼1、連接到本機上的MYSQL。首先打開DOS窗口,然後進入目錄mysql\bin,再鍵入命令mysql

mysql命令歷史如何查看

mysql 歷史命令 歷史sql有時,我們在linux服務器通過mysql連接指令登陸數據庫,然後運行一些命令或查詢sql,之後我們按鍵盤向上方向鍵會一一列出來。如何查看命令歷史呢,就像在linux下的shell中查看shell命令歷史。mysql 有這樣一個機制,就是,在用戶的主目錄下會生成一個.mysql

mysql常用命令小結

mysq iss nal add and src http esc creat 1.命令行中鍵入 net start/stop mysql 開啟/停止mysql服務2.命令行中鍵入 mysql -u用戶名 -p密碼 連接數據庫 (以下命令後須加分號‘;‘)3.用show

MySql常用命令

查看表 pda chang font 全部 庫服務器 eache 發布 row MySQL 數據庫常用命令 1、MySQL常用命令 create database name; 創建數據庫 use databasename; 選擇數據庫 drop database nam

mysql 常用命令實例

練習 語文 inner 成績 desc ins 喬布斯 李磊 innodb -- 完成項目素材中的sql練習,並將編寫的sql文件和運行截圖保存,打包後作為作業提交。 -- 設計一個學生成績數據庫,該庫包含學生,老師,課程和成績等信息並完成後面的練習(註意主外鍵關系)。--

mysql常用命令總結

ble 刪除 常用 ima ces prim left 列名 mysq 一、約束操作 增加主鍵約束 alter table 表名 add constraint 約束名 primary key(列名) 增加外鍵約束 alter table 表名 add constrain

Linux 操作MySQL常用命令

數據 logs 相關 entry 註意 新增 otto delet 記錄 Linux 操作MySQL常用命令行註意:MySQL中每個命令後都要以分號;結尾。  1、顯示數據庫  mysql> show databases;  +----------+  | Datab

MySQL基本命令

賦值 const 字符串結束 磁盤 ons 約束 host 錯誤輸入 scribe Mysql筆記 一.數據庫基本操作 1.mysql -h localhost -u root -p 2.每次輸入以;號結束,中途若有錯誤輸入\c撤銷本次輸入,開始新的輸入。 3.auto_i

mysql,mysqldump命令導入 導出表結構或數據

mysql mysqldump命令導入 導出表結構或數據 在命令行下mysql的數據導出有個很好用命令mysqldump,它的參數有一大把,可以這樣查看: mysqldump 最常用的: mysqldump -uroot -pmysql databasefoo table1 table2 > f

Mysql基本命令

one opera operate sql日誌 trunc 基本 字段類型 原來 結構 一、清除mysql表中數據 delete from 表名;truncate table 表名;不帶where參數的delete語句可以刪除mysql表中所有內容,使用truncate t

MYSQL命令mysql基礎命令

基礎 pre mysq spa 用戶命令 set use sql命令 -- 1.查詢MYSQL當前用戶命令:select user() mysql> select user(); +------------------------+ | user()

Linux運維常用的 MySQL基礎命令

linux運維常用的 mysql基礎命令MySQL基礎命令-------------創建MySQL庫,授權。>create database mysqldb character set utf8;>grant all privileges on mysqldb.* to ‘mysqluser[em

常用mysql查詢命令

說明 hang 地址 遭遇 導出文件 mark error uniq 數據 1、連接Mysql 格式: mysql -h主機地址 -u用戶名 -p用戶密碼 1、連接到本機上的MYSQL。 首先打開DOS窗口,然後進入目錄mysql\bin,再鍵入命令mysql -u r