MySQL中的用戶(hù)創(chuàng)建與權(quán)限管理
一、用戶(hù)管理
在mysql庫(kù)里有個(gè)user表可以查看已經(jīng)創(chuàng)建的用戶(hù)
1.創(chuàng)建MySQL用戶(hù)
注意:MySQL中不能單純通過(guò)用戶(hù)名來(lái)說(shuō)明用戶(hù),必須要加上主機(jī)。如hhy@10.1.1.1
基本語(yǔ)法:
mysql> create user '用戶(hù)名'@'被允許連接的主機(jī)名稱(chēng)或主機(jī)的IP地址' identified by '用戶(hù)密碼'; mysql> select user,host from mysql.user;
案例:創(chuàng)建一個(gè)MySQL賬號(hào),用戶(hù)名:hhy,用戶(hù)密碼:123
mysql> create user 'hhy'@'localhost' identified by '123'; /*或*/ mysql> create user 'hhy'@'127.0.0.1' identified by '123';
案例:創(chuàng)建一個(gè)MySQL賬號(hào)(要求開(kāi)通遠(yuǎn)程連接),主機(jī)IP地址:192.1668.44.110,用戶(hù)名:test,用戶(hù)密碼:123
mysql> create user 'test'@'192.1668.44.110' identified by '123';
測(cè)試:在IP地址為192.168.44.110的主機(jī)上
# yum install mysql -y # mysql -h 192.168.44.110 -P 3306 -uharry -p Enter password:123
選項(xiàng)說(shuō)明:192.168.44.110 :MySQL服務(wù)器端的IP地址
yum安裝mysql:代表安裝的是MySQL的客戶(hù)端
yum安裝mysql-server:代表安裝的是MySQL的服務(wù)器端
案例:創(chuàng)建一個(gè)MySQL賬號(hào)(要求開(kāi)通遠(yuǎn)程連接),主機(jī)IP的網(wǎng)段:10.1.1.0,用戶(hù)名:jack,用戶(hù)密碼:123
create user 'jack'@'192.168.44.%' identified by '123'
案例:創(chuàng)建一個(gè)MySQL賬號(hào)(要求開(kāi)通遠(yuǎn)程連接),要求面向所有主機(jī)開(kāi)放,用戶(hù)名:root,用戶(hù)密碼:123
create user 'root'@'%' identified by '123';
2. 刪除MySQL用戶(hù)
基本用戶(hù):
mysql> drop user '用戶(hù)名'@'主機(jī)名稱(chēng)或主機(jī)的IP地址';
特別說(shuō)明:
如果在刪除用戶(hù)時(shí)沒(méi)有指定主機(jī)的名稱(chēng)或主機(jī)的IP地址,則默認(rèn)刪除這個(gè)賬號(hào)的所有信息。
案例:刪除hhy這個(gè)賬號(hào)
drop user 'hhy'@'localhost';
案例:刪除jack這個(gè)賬號(hào)
drop user 'jack'@'192.168.44.%';
案例:創(chuàng)建兩個(gè)harry賬號(hào)(localhost/10.1.1.23),然后刪除其中的某個(gè)
mysql> create user 'harry'@'localhost' identified by '123'; mysql> create user 'harry'@'192.168.44.110' identified mysql> drop user 'harry'@'192.168.44.110';
刪除MySQL賬號(hào)的另外一種方式
mysql> delete from mysql.user where user='root' and host='%'; mysql> flush privileges;
3. 修改MySQL用戶(hù)
特別說(shuō)明:MySQL用戶(hù)重命名通??梢愿膬刹糠?,一部分是用戶(hù)的名稱(chēng),一部分是被允許訪(fǎng)問(wèn)的主機(jī)名稱(chēng)或主機(jī)的IP地址。
基本語(yǔ)法:
mysql> rename user 舊用戶(hù)信息 to 新用戶(hù)信息;
案例:把用戶(hù)’root’@'%‘更改為’root’@‘10.1.1.%’
mysql> rename user 'root'@'%' to 'root'@'10.1.1.%';
案例:把’harry’@‘localhost’更名為’hhy’@‘localhost’
mysql> create user 'tom'@'localhost' identified by '123'; mysql> rename user 'tom'@'localhost' to 'hhy'@'localhost';
使用update語(yǔ)句更新用戶(hù)信息
mysql> update mysql.user set user='hhy',host='localhost' where user='tom' and host='localhost'; mysql> flush privileges;
二、權(quán)限管理
1. 權(quán)限說(shuō)明
USAGE 無(wú)權(quán)限,只有登錄數(shù)據(jù)庫(kù),只可以使用test或test_*數(shù)據(jù)庫(kù) ALL 所有權(quán)限 以下權(quán)限為指定權(quán)限 select/update/delete/super/replication slave/reload... with grant option 選項(xiàng)表示允許把自己的權(quán)限授予其它用戶(hù)或者從其他用戶(hù)收回自己的權(quán)限
默認(rèn)情況下,分配權(quán)限時(shí)如果沒(méi)有指定with grant option,代表這個(gè)用戶(hù)不能下發(fā)權(quán)限給其他用戶(hù),但是這個(gè)權(quán)限分配不能超過(guò)自身權(quán)限。
2. 權(quán)限保存位置(了解)
- mysql.user:所有mysql用戶(hù)的賬號(hào)和密碼,以及用戶(hù)對(duì)全庫(kù)全表權(quán)限(*.*)
- mysql.db :非mysql庫(kù)的授權(quán)都保存在此(db.*)
- mysql.table_priv :某庫(kù)某表的授權(quán)(db.table)
- mysql.columns_priv :某庫(kù)某表某列的授權(quán)(db.table.col1)
- mysql.procs_priv :某庫(kù)存儲(chǔ)過(guò)程的授權(quán)
3. 給用戶(hù)授權(quán)
創(chuàng)建數(shù)據(jù)庫(kù)表:
create database java;
use java;
create table tb_student(
id mediumint not null auto_increment,
name varchar(20),
age tinyint unsigned default 0,
gender enum('男','女'),
address varchar(255),
primary key(id)
) engine=innodb default charset=utf8;
insert into tb_student values (null,'劉備',33,'男','湖北省武漢市');
insert into tb_student values (null,'貂蟬',18,'女','湖南省長(zhǎng)沙市');
insert into tb_student values (null,'關(guān)羽',32,'男','湖北省荊州市');
insert into tb_student values (null,'大喬',20,'女','河南省漯河市');
insert into tb_student values (null,'趙云',25,'男','河北省石家莊市');
insert into tb_student values (null,'小喬',18,'女','湖北省荊州市');基本語(yǔ)法:
mysql> grant 權(quán)限1,權(quán)限2 on 庫(kù).表 to 用戶(hù)@主機(jī) mysql> grant 權(quán)限(列1,列2,...) on 庫(kù).表 to 用戶(hù)@主機(jī)
庫(kù).表表示方法:*.*代表所有數(shù)據(jù)庫(kù)的所有數(shù)據(jù)表,db_itheima.*代表db_itheima數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)表,db_itheima.tb_admin,代表db_itheima數(shù)據(jù)庫(kù)中的tb_admin表
案例:給thhy賬號(hào)分配java數(shù)據(jù)庫(kù)的查詢(xún)權(quán)限
mysql> grant select on java.* to 'hehanyu'@'192.168.44.%'; mysql> flush privileges;
案例:給hehanyu賬號(hào)分配java.tb_student數(shù)據(jù)表的權(quán)限(要求只能更改age字段)
mysql> grant update(age) on java.tb_student to 'hehanyu'@'192.168.44.%'; mysql> flush privileges;
案例:添加一個(gè)root@%賬號(hào),然后分配所有權(quán)限
create user 'root'@'%' identified by '123'; grant all on *.* to 'root'@'%'; flush privileges;
4. 查詢(xún)用戶(hù)權(quán)限
查詢(xún)當(dāng)前用戶(hù)權(quán)限:
mysql> show grants;
查詢(xún)其他用戶(hù)權(quán)限:
mysql> show grants for '用戶(hù)名稱(chēng)'@'授權(quán)的主機(jī)名稱(chēng)或IP地址';
5. with grant option選項(xiàng)
mysql> grant all on *.* to 'amy'@'10.1.1.%' identified by '123' with grant option; mysql> grant all on *.* to 'harry'@'10.1.1.%' identified by '123';
如以上命令所示:amy擁有下發(fā)權(quán)限的功能,而harry不具備下發(fā)權(quán)限的功能。
如果grant授權(quán)時(shí)沒(méi)有with grant option選項(xiàng),則其無(wú)法為其他用戶(hù)授權(quán)。
6.revoke回收權(quán)限
基本語(yǔ)法:
revoke 權(quán)限 on 庫(kù).表 from 用戶(hù); 查看hehanyu用戶(hù)權(quán)限 mysql> show grants for 'hehanyu'@'192.168.44.%'; 撤消指定的權(quán)限 mysql> revoke update on java.tb_student from 'tom'@'192.168.44.%'; 撤消所有的權(quán)限 mysql> revoke select on java.* from 'tom'@'192.168.44.%';
到此這篇關(guān)于MySQL中的用戶(hù)創(chuàng)建與權(quán)限管理的文章就介紹到這了,更多相關(guān)MySQL用戶(hù)創(chuàng)建內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MySQL創(chuàng)建用戶(hù)與授權(quán)及撤銷(xiāo)用戶(hù)權(quán)限方法
- MySQL 創(chuàng)建用戶(hù)、授權(quán)用戶(hù)、撤銷(xiāo)用戶(hù)權(quán)限、更改用戶(hù)密碼、刪除用戶(hù)(實(shí)用技巧)
- mysql創(chuàng)建本地用戶(hù)及賦予數(shù)據(jù)庫(kù)權(quán)限的方法示例
- 詳解mysql8.0創(chuàng)建用戶(hù)授予權(quán)限報(bào)錯(cuò)解決方法
- MySQL創(chuàng)建用戶(hù)和權(quán)限管理的方法
- MySql添加新用戶(hù)及為用戶(hù)創(chuàng)建數(shù)據(jù)庫(kù)和給用戶(hù)分配權(quán)限方法介紹
- mysql創(chuàng)建用戶(hù)并賦予用戶(hù)權(quán)限詳細(xì)操作教程
- MySQL8.0創(chuàng)建用戶(hù)和權(quán)限控制示例詳解
- Mysql用戶(hù)創(chuàng)建以及權(quán)限賦予操作的實(shí)現(xiàn)
- MySQL創(chuàng)建用戶(hù)以及用戶(hù)權(quán)限詳細(xì)圖文教程
相關(guān)文章
PhpMyAdmin 配置文件現(xiàn)在需要一個(gè)短語(yǔ)密碼的解決方法
本文主要介紹PhpMyAdmin 配置文件現(xiàn)在需要一個(gè)短語(yǔ)密碼的解決方法,比較實(shí)用,希望能給大家做一個(gè)參考。2016-06-06
寶塔面板mysql無(wú)法啟動(dòng)問(wèn)題的分析和解決
在使用寶塔linux面板一鍵安裝LNMP的是,數(shù)據(jù)庫(kù)mysql始終無(wú)法啟動(dòng),查查找找用了幾個(gè)小時(shí),問(wèn)題終于解決了,下面這篇文章主要給大家介紹了關(guān)于寶塔面板mysql無(wú)法啟動(dòng)問(wèn)題的分析和解決方法,需要的朋友可以參考下2023-04-04
SQL結(jié)果如何根據(jù)某個(gè)字段取最新時(shí)間去重
在日常的項(xiàng)目開(kāi)發(fā)當(dāng)中,經(jīng)常會(huì)遇到獲取同一屬性相同的記錄,如何獲取記錄時(shí)間最新的那一條,下面這篇文章主要給大家介紹了關(guān)于SQL結(jié)果如何根據(jù)某個(gè)字段取最新時(shí)間去重的相關(guān)資料,需要的朋友可以參考下2023-06-06
通過(guò)SQL語(yǔ)句來(lái)備份,還原數(shù)據(jù)庫(kù)
這里僅僅用到了一種方式而已,把數(shù)據(jù)庫(kù)文件備份到磁盤(pán)然后在恢復(fù).2010-02-02
MySQL海量數(shù)據(jù)(2億級(jí)表字段)無(wú)損更新方案
在大型互聯(lián)網(wǎng)應(yīng)用中,數(shù)據(jù)表動(dòng)輒達(dá)到億級(jí)規(guī)模,當(dāng)需要對(duì)生產(chǎn)環(huán)境中的海量表進(jìn)行字段更新時(shí),如何在不影響業(yè)務(wù)正常讀寫(xiě)的情況下完成任務(wù),是每個(gè)DBA和開(kāi)發(fā)者都會(huì)面臨的挑戰(zhàn),本文將以一個(gè)真實(shí)案例詳細(xì)講解四種漸進(jìn)式更新方案及其實(shí)現(xiàn)原理,需要的朋友可以參考下2025-04-04
SQL刪除重復(fù)數(shù)據(jù)的實(shí)例教程
在使用SQL提數(shù)的時(shí)候,常會(huì)遇到表內(nèi)有重復(fù)值的時(shí)候,下面這篇文章主要給大家介紹了關(guān)于SQL刪除重復(fù)數(shù)據(jù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07
MYSQL必知必會(huì)讀書(shū)筆記第十和十一章之使用函數(shù)處理數(shù)據(jù)
這篇文章主要介紹了MYSQL必知必會(huì)讀書(shū)筆記第十和十一章之使用函數(shù)處理數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2016-05-05

