最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SQL中的用戶管理權(quán)限與用戶詳解

 更新時間:2026年05月23日 10:43:50   作者:啊吧怪不啊吧  
這篇文章給大家介紹SQL中的用戶管理權(quán)限與用戶的相關(guān)操作,本文結(jié)合實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧

我們在MySQL的學(xué)習(xí)過程中一開始基本上都是使用root用戶來進(jìn)行各種操作的,但是其實這樣是不好的,因為我們在以后工作的時候是不可能給你root用戶來進(jìn)行操作的,所以我們在這里要提前適應(yīng)普通用戶。

1. 用戶相關(guān)

我們首先要學(xué)會查看用戶的信息,再我看來這是第一步,接著我們在學(xué)會創(chuàng)建,銷毀用戶之類的操作。

1.1 查看已存在用戶的信息

use mysql;
select host,user,authentication_string from user;

我們需要使用到上面兩條指令來進(jìn)行查看信息。

不知道各位有沒有這個疑惑,就是我是查看用戶信息又不是所有某一個數(shù)據(jù)庫,為什么需要先use mysql呢?這是因為在mysql這個數(shù)據(jù)庫系統(tǒng)里面,用戶相關(guān)的各種信息也是存放在表里面的。

各位仔細(xì)看下面這張圖片,這里面有三個用戶,這三個用戶都是系統(tǒng)自帶的,分別是:

  • root@localhost:MySQL 的超級管理員用戶,擁有最高權(quán)限(可以操作所有數(shù)據(jù)庫、表、權(quán)限等),是我們?nèi)粘9芾頂?shù)據(jù)庫時常用的賬號。
  • mysql.session@localhost: MySQL 內(nèi)部服務(wù)使用的用戶,主要用于系統(tǒng)進(jìn)程之間的通信(比如 MySQL 的插件、內(nèi)部管理操作),不能手動登錄使用。
  • mysql.sys@localhost: MySQL 5.7 及以上版本新增的用戶,用于管理系統(tǒng)視圖(sys schema)(sys 庫是 MySQL 提供的簡化性能監(jiān)控、運維管理的視圖集合),同樣是內(nèi)部專用,不能手動登錄。

字段解釋:

host表示這個用戶可以從哪個主機(jī)登陸,如果是localhost,表示只能從本機(jī)登陸

user用戶名

authentication_string用戶密碼通過password函數(shù)加密后的

*_priv用戶擁有的權(quán)限

1.2 創(chuàng)建新用戶

代碼:

create user '用戶名'@'登陸主機(jī)/ip' identified by '密碼';

我們通過上面的代碼就可以創(chuàng)建一個新用戶。

在我們接下來的學(xué)習(xí)中我們創(chuàng)建新用戶都是使用root賬號來進(jìn)行創(chuàng)建的,但是我們不可以誤以為只有root賬號可以創(chuàng)建新用戶,有cheate user權(quán)限的普通用戶也可以創(chuàng)建新用戶,這個我們在后面會說到。

我們看下面這張圖,這樣我們就創(chuàng)建好一個用戶。

PS:當(dāng)我們使用root賬號創(chuàng)建一個新用戶的時候,這個新用戶默認(rèn)是沒有權(quán)限的,也就是什么都做不了的,因為創(chuàng)建庫和創(chuàng)建表以及select都是需要一定的權(quán)限的。

這邊想要額外提一下,就是我們的那個登入主機(jī)的位置如果選的是localhost的話就是說這個賬號只支持本地登入,也就是只有創(chuàng)建這個賬號的這臺設(shè)備可以登入這個用戶。

如果是想要某一臺設(shè)備可以登入的話,那么就在這個位置輸入那臺設(shè)備的ip。

如果是想要什么設(shè)備只要知道密碼都可以登入的話,那么我們就在這個位置直接輸入一個‘%’就可以了。

1.3 刪除用戶

代碼:

drop user '用戶名'@'主機(jī)名'

我們看,這樣我們就可以把叫做‘1’的本地登入的用戶給刪除了。

這一步是不需要密碼的,也就是不需要‘1’的密碼,可以直接刪除。

1.4 修改用戶登入密碼

這個的話又比較不同了,因為在這里可以分為用戶自己修改密碼和root用戶來修改普通用戶的密碼。

用戶自己修改密碼:

set password=password('新的密碼');

如果是普通用戶自己修改密碼的話,我們需要先登入那個賬號。

root用戶來修改密碼:

set password for '用戶名'@'主機(jī)名'=password('新的密碼');

root的話直接指定需要修改哪一個就好了。

2. 權(quán)限相關(guān)

首先我們需要知道什么叫做權(quán)限。在MySQL中什么都是需要權(quán)限的,無論是創(chuàng)建查看數(shù)據(jù)庫數(shù)據(jù)表或者創(chuàng)建刪除用戶,這些都是需要相應(yīng)的權(quán)限我們才可以做到的。

相關(guān)的權(quán)限:

一、全局權(quán)限(作用于所有數(shù)據(jù)庫)

全局權(quán)限存儲在mysql.user表中,授權(quán)時用ON *.*指定:

  • ALL PRIVILEGES:所有權(quán)限(除GRANT OPTION外的全部權(quán)限,加上WITH GRANT OPTION則包含授權(quán)權(quán)限)。
  • CREATE USER:創(chuàng)建 / 刪除用戶、修改用戶密碼。
  • DROP USER:刪除用戶。
  • SUPER:超級權(quán)限(如 kill 進(jìn)程、修改全局變量、日志管理)。
  • SHOW DATABASES:查看所有數(shù)據(jù)庫列表。
  • RELOAD:重新加載權(quán)限表、刷新日志等。
  • SHUTDOWN:關(guān)閉 MySQL 服務(wù)。
  • PROCESS:查看所有進(jìn)程(SHOW PROCESSLIST)。
  • FILE:讀寫服務(wù)器本地文件(如LOAD DATA INFILE)。

二、數(shù)據(jù)庫權(quán)限(作用于指定數(shù)據(jù)庫)

數(shù)據(jù)庫權(quán)限存儲在mysql.db表中,授權(quán)時用ON 數(shù)據(jù)庫名.*指定:

  • CREATE:創(chuàng)建新數(shù)據(jù)庫或表。
  • DROP:刪除數(shù)據(jù)庫或表。
  • ALTER:修改表結(jié)構(gòu)(如ALTER TABLE)。
  • INDEX:創(chuàng)建 / 刪除索引。
  • INSERT:插入數(shù)據(jù)到表。
  • DELETE:刪除表中數(shù)據(jù)。
  • UPDATE:更新表中數(shù)據(jù)。
  • SELECT:查詢表中數(shù)據(jù)。
  • REFERENCES:創(chuàng)建外鍵約束。
  • CREATE TEMPORARY TABLES:創(chuàng)建臨時表。
  • LOCK TABLES:鎖定表(用于事務(wù))。
  • EXECUTE:執(zhí)行存儲過程 / 函數(shù)。

三、表權(quán)限(作用于指定表)

表權(quán)限存儲在mysql.tables_priv表中,授權(quán)時用ON 數(shù)據(jù)庫名.表名指定:

  • SELECT/INSERT/UPDATE/DELETE(同數(shù)據(jù)庫權(quán)限,但僅作用于單表)。
  • ALTER:修改該表結(jié)構(gòu)。
  • INDEX:該表的索引操作。
  • CREATE VIEW:基于該表創(chuàng)建視圖。
  • SHOW VIEW:查看該表的視圖定義。
  • TRIGGER:創(chuàng)建 / 觸發(fā)該表的觸發(fā)器。

四、列權(quán)限(作用于表中指定列)

列權(quán)限存儲在mysql.columns_priv表中,授權(quán)時需指定列(如ON 庫.表 (列1,列2)):

  • 僅支持SELECT/INSERT/UPDATE(對指定列的操作權(quán)限)。

五、存儲對象權(quán)限(作用于存儲過程 / 函數(shù) / 視圖)

  • EXECUTE:執(zhí)行指定存儲過程 / 函數(shù)。
  • ALTER ROUTINE:修改 / 刪除指定存儲過程 / 函數(shù)。
  • CREATE ROUTINE:創(chuàng)建存儲過程 / 函數(shù)。
  • CREATE VIEW/SHOW VIEW:視圖的創(chuàng)建 / 查看權(quán)限。

2.1給用戶權(quán)限

代碼:

GRANT ALTER ON *.* TO '用戶名'@'登錄位置';
grant all [privileges] on 庫.對象名 to '用戶名'@'登陸位置' [identified by '密碼']
grant 權(quán)限列表 on 庫.對象名 to '用戶名'@'登陸位置' [identified by '密碼']

第一條代碼的意思是授予一個用戶修改所有表的權(quán)限。

第二個給指定用戶授予 “指定庫 / 對象” 的全部操作權(quán)限。

第三條是給一個用戶關(guān)于某個庫的權(quán)限。

identified by是可選, 如果用戶存在,賦予權(quán)限的同時修改密碼,如果該用戶不存在,就是創(chuàng)建用戶。

2.2回收權(quán)限

我們可以給一個用戶權(quán)限,同時也可以回收用戶的權(quán)限。

代碼:

revoke 權(quán)限列表 on 庫.對象名 from '用戶名'@'登陸位置';

到此這篇關(guān)于SQL之用戶管理——權(quán)限與用戶的文章就介紹到這了,更多相關(guān)SQL用戶權(quán)限管理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

会宁县| 万山特区| 柯坪县| 兰坪| 延长县| 仁化县| 福安市| 景洪市| 胶南市| 巴塘县| 绵阳市| 阳泉市| 许昌县| 贺州市| 镇雄县| 岐山县| 怀安县| 郓城县| 静宁县| 寿光市| 吉安市| 静安区| 鄂温| 板桥市| 辽阳县| 合肥市| 崇文区| 南开区| 贞丰县| 清新县| 偃师市| 凤山市| 普安县| 太谷县| 平谷区| 新乡县| 松原市| 巴南区| 阳原县| 灵川县| 赤水市|