您好,登錄后才能下訂單哦!
這篇“怎么添加一個mysql用戶并給予權限”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“怎么添加一個mysql用戶并給予權限”文章吧。
CREATE USER ‘username‘@'host' IDENTIFIED BY ‘password';
2、創建用戶
mysql> create user 'hh'@'%' identified by '123456'; Query OK, 0 rows affected (0.01 sec)
查看一下是否創建成功:
mysql> select user,host from user; +------------------+-----------+ | user | host | +------------------+-----------+ | caona | % | | hh | % | | root | % | | mysql.infoschema | localhost | | mysql.session | localhost | | mysql.sys | localhost | +------------------+-----------+ 6 rows in set (0.00 sec)
創建完用戶后……
老板:好,比以前有進步了,那你再給joytom這個用戶設置一個權限,只允許查詢和修改copytest數據庫中的student表。
小王信手拈來,又熟練的操作了一波:
grant privileges on database.tablename to “username”@'host';
privileges:用戶的操作權限,如 SELECT,INSERT,UPDATE 等,如果要授予所的權限則使用 ALL。
mysql> grant select,update on mysql.user to 'hh'@'%'; Query OK, 0 rows affected (0.02 sec)
mysql> grant SHOW VIEW on mysql.user to 'hh'@'%'; Query OK, 0 rows affected (0.01 sec) mysql> flush privileges; Query OK, 0 rows affected (0.01 sec)
老板:咳咳,很好,現在 joytom 不是有三個權限了么(查詢,修改,查詢視圖),那你把查詢視圖的權限給去掉,只留查詢和修改。
小王心中暗喜,這我都學了,很基礎的啊……
revoke privileges ON database.tablename FROM ‘username‘@'host';
撤銷(revoke)的和授予(grant)的基本一樣,除了 revoke(對應 grant)和 from(對應 to)
mysql> revoke SHOW VIEW on mysql.user from 'hh'@'%'; Query OK, 0 rows affected (0.01 sec) mysql> flush privileges; Query OK, 0 rows affected (0.01 sec)
再次查看:
mysql> show grants for 'hh'@'%'; +----------------------------------------------------+ | Grants for hh@% | +----------------------------------------------------+ | GRANT USAGE ON *.* TO `hh`@`%` | | GRANT SELECT, UPDATE ON `mysql`.`user` TO `hh`@`%` | +----------------------------------------------------+ 2 rows in set (0.00 sec)
發現已經沒了查看視圖的權限。
grant, revoke 用戶權限后,該用戶只有重新連接 MySQL 數據庫,權限才能生效。
老板:把 joytom 這個用戶刪掉讓我看看。
小王:好嘞,40 秒完事。
drop user username@host
先查看一下現在的所有用戶:
mysql> select user,host from user; +------------------+-----------+ | user | host | +------------------+-----------+ | caona | % | | hh | % | | root | % | | mysql.infoschema | localhost | | mysql.session | localhost | | mysql.sys | localhost | +------------------+-----------+ 6 rows in set (0.00 sec)
刪除 hh:
mysql> drop user hh@'%'; Query OK, 0 rows affected (0.01 sec)
再次查看,發現已經沒了 joytom 這個用戶:
mysql> select user,host from user; +------------------+-----------+ | user | host | +------------------+-----------+ | caona | % | | root | % | | mysql.infoschema | localhost | | mysql.session | localhost | | mysql.sys | localhost | +------------------+-----------+ 5 rows in set (0.00 sec)
老板:把 joytom 這個用戶密碼修改一下。
小王:好嘞老板。
mysql5.*版本使用如下語句:
要想為匿名賬戶指定密碼,可以使用SET PASSWORD或UPDATE。在兩種情況中,一定要使用PASSWORD()函數為密碼加密
在Windows/Unix中使用PASSWORD的方法:
mysql> SET PASSWORD FOR ''@'localhost' = PASSWORD('newpwd'); mysql> SET PASSWORD FOR ''@'%' = PASSWORD('newpwd');為匿名賬戶指定密碼的另一種方法是使用UPDATE直接修改用戶表。
在Windows和Unix中的過程是相同的。
下面的UPDATE語句同時為兩個匿名賬戶指定密碼:
mysql> UPDATE mysql.user SET Password = PASSWORD('newpwd') WHERE User = ''; mysql> FLUSH PRIVILEGES;mysql8.*版本使用如下語句:
1、 修改用戶登錄密碼
ALTER USER 'caona'@'%' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY '123456';
老板大喜:非常好非常好,加薪 2k,繼續努力,另外給其它同事講一下密碼過期和鎖定用戶的問題。
感謝老板,我會繼續努力,我這就去整理一下課件。
在 MySQL5.6.6 版本起,增加了 password_expired 功能,它允許設置 MySQL 數據庫用戶的密碼過期時間。這個特性已經添加到 mysql.user 數據表,它的默認值是”N”,表示已禁用密碼過期功能
強制設置為密碼過期:
強制設置密碼過期后,雖然能夠登陸,但是一切權限都為空了。
在創建的時候鎖定用戶:
已存在的時候鎖定用戶:
解鎖賬號:
老板:現在你對 mysql 的權限管理掌握的還算可以了,咳咳,今天下班前給我整理一個權限常用關鍵字,整理不好就加會班吧。
小王想,幸虧這個我在學的時候就已經整理過啊,看樣今天不用加班了!
權限 | 意義 |
ALL [PRIVILEGES] | 設置除GRANT OPTION之外的所有簡單權限 |
ALTER | 允許使用ALTER TABLE |
ALTER ROUTINE | 更改或取消已存儲的子程序 |
CREATE | 允許使用CREATE TABLE |
CREATE ROUTINE | 創建已存儲的子程序 |
CREATE TEMPORARY TABLES | 允許使用CREATE TEMPORARY TABLE |
CREATE USER | 允許使用CREATE USER, DROP USER, RENAME USER和REVOKE ALL PRIVILEGES。 |
CREATE VIEW | 允許使用CREATE VIEW |
DELETE | 允許使用DELETE |
DROP | 允許使用DROP TABLE |
EXECUTE | 允許用戶運行已存儲的子程序 |
FILE | 允許使用SELECT...INTO OUTFILE和LOAD DATA INFILE |
INDEX | 允許使用CREATE INDEX和DROP INDEX |
INSERT | 允許使用INSERT |
LOCK TABLES | 允許對您擁有SELECT權限的表使用LOCK TABLES |
PROCESS | 允許使用SHOW FULL PROCESSLIST |
REFERENCES | 未被實施 |
RELOAD | 允許使用FLUSH |
REPLICATION CLIENT | 允許用戶詢問從屬服務器或主服務器的地址 |
REPLICATION SLAVE | 用于復制型從屬服務器(從主服務器中讀取二進制日志事件) |
SELECT | 允許使用SELECT |
SHOW DATABASES | SHOW DATABASES顯示所有數據庫 |
SHOW VIEW | 允許使用SHOW CREATE VIEW |
SHUTDOWN | 允許使用mysqladmin shutdown |
SUPER | 允許使用CHANGE MASTER, KILL, PURGE MASTER LOGS和SET GLOBAL語句,mysqladmin debug命令;允許您連接(一次),即使已達到max_connections。 |
UPDATE | 允許使用UPDATE |
USAGE | “無權限”的同義詞 |
GRANT OPTION | 允許授予權限 |
以上就是關于“怎么添加一個mysql用戶并給予權限”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。