99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

聯(lián)想mysql80怎么不能設(shè)的簡(jiǎn)單介紹

mysql80沒(méi)有啟動(dòng)按鈕

1.在安裝MySQL的最后一步,配置啟動(dòng)MySQL服務(wù)的時(shí)候,MySQL啟動(dòng)失敗

成都創(chuàng)新互聯(lián)公司專(zhuān)注于網(wǎng)站建設(shè),為客戶提供網(wǎng)站建設(shè)、成都網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)開(kāi)發(fā)服務(wù),多年建網(wǎng)站服務(wù)經(jīng)驗(yàn),各類(lèi)網(wǎng)站都可以開(kāi)發(fā),高端網(wǎng)站設(shè)計(jì),公司官網(wǎng),公司展示網(wǎng)站,網(wǎng)站設(shè)計(jì),建網(wǎng)站費(fèi)用,建網(wǎng)站多少錢(qián),價(jià)格優(yōu)惠,收費(fèi)合理。

2.在我的電腦-右鍵-管理-服務(wù)和應(yīng)用程序-服務(wù) 里面找到MySQL80服務(wù),右鍵啟動(dòng),報(bào)錯(cuò)如下圖:

3.由于小編最近新裝的操作系統(tǒng),之前也出現(xiàn)過(guò)權(quán)限不足的提示,故首先定位故障為權(quán)限問(wèn)題。由于MySQL80服務(wù)在 計(jì)算機(jī)管理-服務(wù) 里面顯示戶別為:網(wǎng)絡(luò)服務(wù)。

win10 MySQL表不能設(shè)置外鍵

1. 打開(kāi)我的navicat,然后找到我的teacher表,選中它,然后點(diǎn)擊菜單的‘design table’。

2. 在彈出的對(duì)話框中找到“Foreign Keys”,然后單擊。

3. 然后會(huì)出現(xiàn)一個(gè)設(shè)置外鍵的界面,一共有七列。簡(jiǎn)單介紹一下這幾列的意思。

‘name’:可以不填,你一會(huì)保存成功系統(tǒng)會(huì)自動(dòng)生成。

‘FieldName’:就是你要把哪個(gè)鍵設(shè)置為外鍵。這里選擇‘dept’

‘Reference DadaBase’:外鍵關(guān)聯(lián)的數(shù)據(jù)庫(kù)。

‘Reference Table‘ :關(guān)聯(lián)的表 這里是dept表

‘Forgin filed Names’:關(guān)聯(lián)的的字段,這里是code

‘ondelete’:就是刪除的時(shí)候選擇的動(dòng)作。這里我的選擇是setNull,意思就是當(dāng)關(guān)聯(lián)的表刪除以后,teacher》dept字段會(huì)設(shè)置為null。

‘onupdate’:就是更新的時(shí)候選擇的動(dòng)作。這里我的選擇是CASCADE,意思就是當(dāng)關(guān)聯(lián)的表更新以后,teacher》dept字段會(huì)設(shè)置為級(jí)聯(lián)更新。

4. 設(shè)置完成后點(diǎn)擊‘save’保存退出,也可以點(diǎn)擊‘a(chǎn)dd Foreign Key’再添加一個(gè)外鍵。

MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典 MySQL AB 公司開(kāi)發(fā),目前屬于 Oracle 旗下公司。MySQL 最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),在 WEB 應(yīng)用方面 MySQL 是最好的 RDBMS (Relational Database Management System,關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)) 應(yīng)用軟件之一。MySQL 是一種關(guān)聯(lián)數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就增加了速度并提高了靈活性。MySQL 所使用的 SQL 語(yǔ)言是用于訪問(wèn)數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)化語(yǔ)言。MySQL 軟件采用了雙授權(quán)政策(本詞條“授權(quán)政策”),它分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),一般中小型網(wǎng)站的開(kāi)發(fā)都選擇 MySQL 作為網(wǎng)站數(shù)據(jù)庫(kù)。由于其社區(qū)版的性能卓越,搭配 PHP 和 Apache 可組成良好的開(kāi)發(fā)環(huán)境。

為什么安裝了mysql80mysql5.0不能用了?

主要是默認(rèn)端口相同,他們會(huì)沖突,如果不調(diào)整,只能啟動(dòng)一個(gè)服務(wù)。

另外,安裝的時(shí)候要注意不同版本的應(yīng)用(EXE文件)位置、數(shù)據(jù)位置(DATA文件夾)、配置文件(MY.CNF、MY.INI)、以及驅(qū)動(dòng)代碼(DLL文件)都要區(qū)分好,不要相互影響。

聯(lián)想的電腦無(wú)法自啟動(dòng)mysql

開(kāi)機(jī)不斷點(diǎn)擊F8鍵,進(jìn)入系統(tǒng)操作選單,選“安全模式”,如能成功進(jìn)入,依次單擊“開(kāi)始”“所有程序”“附件”“系統(tǒng)工具”系統(tǒng)還原”,出現(xiàn)“系統(tǒng)還原對(duì)話框”,選擇“恢復(fù)我的計(jì)算機(jī)到一個(gè)較早的時(shí)間”。 這樣可以用Windows系統(tǒng)自帶的系統(tǒng)還原功能,還原到以前能正常開(kāi)機(jī)的時(shí)候一個(gè)還原點(diǎn)。

navicat for mysql 80 怎么把l默認(rèn)表類(lèi)型設(shè)成InnoDB

在mysql的安裝目錄中找到myini文件找到skip-innodb,1 這個(gè)貌似在navicat 中沒(méi)有設(shè)置選項(xiàng)。2 navicat 9則在navicat 中創(chuàng)建表時(shí)不指定存儲(chǔ)引擎則會(huì)是innodbnavicat for mysql 80 怎么把l默認(rèn)表類(lèi)型設(shè)成InnoDB

mysql中不能設(shè)置列的權(quán)限

一、用戶管理

1、登錄mysql

mysql –h hostname|hostIP –P port –u username –p DatabaseName –e "SQL語(yǔ)句"

比如

mysql -uroot -p -hlocalhost -P3306 mysql -e "select host,user from user"

-h參數(shù) 后面接主機(jī)名或者主機(jī)IP,hostname為主機(jī),hostIP為主機(jī)IP。

-P參數(shù) 后面接MySQL服務(wù)的端口,通過(guò)該參數(shù)連接到指定的端口。MySQL服務(wù)的默認(rèn)端口是3306,

不使用該參數(shù)時(shí)自動(dòng)連接到3306端口,port為連接的端口號(hào)。

-u參數(shù) 后面接用戶名,username為用戶名。

-p參數(shù) 會(huì)提示輸入密碼。

DatabaseName參數(shù) 指明登錄到哪一個(gè)數(shù)據(jù)庫(kù)中。如果沒(méi)有該參數(shù),就會(huì)直接登錄到MySQL數(shù)據(jù)庫(kù)

中,然后可以使用USE命令來(lái)選擇數(shù)據(jù)庫(kù)。

-e參數(shù) 后面可以直接加SQL語(yǔ)句。登錄MySQL服務(wù)器以后即可執(zhí)行這個(gè)SQL語(yǔ)句,然后退出MySQL

服務(wù)器。

2、創(chuàng)建用戶

CREATE USER 用戶名 [IDENTIFIED BY '密碼'][,用戶名 [IDENTIFIED BY '密碼']];

比如

CREATE USER 'kangshifu'@'localhost' IDENTIFIED BY '123456';

用戶名參數(shù)表示新建用戶的賬戶,由 用戶(User) 和 主機(jī)名(Host) 構(gòu)成;

“[ ]”表示可選,也就是說(shuō),可以指定用戶登錄時(shí)需要密碼驗(yàn)證,也可以不指定密碼驗(yàn)證,這樣用戶

可以直接登錄。不過(guò),不指定密碼的方式不安全,不推薦使用。如果指定密碼值,這里需要使用

IDENTIFIED BY指定明文密碼值。

CREATE USER語(yǔ)句可以同時(shí)創(chuàng)建多個(gè)用戶。

3、更新用戶

UPDATE mysql.user SET USER='li4' WHERE USER='wang5';

FLUSH PRIVILEGES;

4、刪除用戶

方式1:使用DROP方式刪除(推薦)

使用DROP USER語(yǔ)句來(lái)刪除用戶時(shí),必須用于DROP USER權(quán)限。DROP USER語(yǔ)句的基本語(yǔ)法形式如下

DROP USER user[,user]…;

比如

DROP USER li4 ; # 默認(rèn)刪除host為%的用戶

DROP USER 'kangshifu'@'localhost';

方式2:使用DELETE方式刪除

DELETE FROM mysql.user WHERE Host=’hostname’ AND User=’username’;

FLUSH PRIVILEGES;

比如

DELETE FROM mysql.user WHERE Host='localhost' AND User='Emily';

FLUSH PRIVILEGES;

注意:不推薦通過(guò) DELETE FROM USER u WHERE USER='li4' 進(jìn)行刪除,系統(tǒng)會(huì)有殘留信息保 留。而drop user命令會(huì)刪除用戶以及對(duì)應(yīng)的權(quán)限,執(zhí)行命令后你會(huì)發(fā)現(xiàn)mysql.user表和mysql.db表 的相應(yīng)記錄都消失了。

5、 設(shè)置當(dāng)前用戶密碼

舊的寫(xiě)法

# 修改當(dāng)前用戶的密碼:(MySQL5.7測(cè)試有效)

SET PASSWORD = PASSWORD('123456');

推薦寫(xiě)法

1. 使用ALTER USER命令來(lái)修改當(dāng)前用戶密碼 用戶可以使用ALTER命令來(lái)修改自身密碼,如下語(yǔ)句代表修 改當(dāng)前登錄用戶的密碼。基本語(yǔ)法如下:

ALTER USER USER() IDENTIFIED BY 'new_password';

2. 使用SET語(yǔ)句來(lái)修改當(dāng)前用戶密碼 使用root用戶登錄MySQL后,可以使用SET語(yǔ)句來(lái)修改密碼,具體 SQL語(yǔ)句如下: 該語(yǔ)句會(huì)自動(dòng)將密碼加密后再賦給當(dāng)前用戶。

SET PASSWORD='new_password';

6、修改其他用戶密碼

1. 使用ALTER語(yǔ)句來(lái)修改普通用戶的密碼 可以使用ALTER USER語(yǔ)句來(lái)修改普通用戶的密碼。基本語(yǔ)法形 式如下:

ALTER USER user [IDENTIFIED BY '新密碼']

[,user[IDENTIFIED BY '新密碼']]…;

2. 使用SET命令來(lái)修改普通用戶的密碼 使用root用戶登錄到MySQL服務(wù)器后,可以使用SET語(yǔ)句來(lái)修改普 通用戶的密碼。SET語(yǔ)句的代碼如下:

SET PASSWORD FOR 'username'@'hostname'='new_password';

3. 使用UPDATE語(yǔ)句修改普通用戶的密碼(不推薦)

UPDATE MySQL.user SET authentication_string=PASSWORD("123456")

WHERE User = "username" AND Host = "hostname";

7、 MySQL8密碼管理(了解

7.1、密碼過(guò)期策略

在MySQL中,數(shù)據(jù)庫(kù)管理員可以 手動(dòng)設(shè)置 賬號(hào)密碼過(guò)期,也可以建立一個(gè) 自動(dòng) 密碼過(guò)期策略。 過(guò)期策略可以是 全局的 ,也可以為 每個(gè)賬號(hào) 設(shè)置單獨(dú)的過(guò)期策略

ALTER USER user PASSWORD EXPIRE;

比如

ALTER USER 'kangshifu'@'localhost' PASSWORD EXPIRE;

方式①:使用SQL語(yǔ)句更改該變量的值并持久化

SET PERSIST default_password_lifetime = 180; # 建立全局策略,設(shè)置密碼每隔180天過(guò)期

方式②:配置文件my.cnf中進(jìn)行維護(hù)

[mysqld]

default_password_lifetime=180 #建立全局策略,設(shè)置密碼每隔180天過(guò)期

手動(dòng)設(shè)置指定時(shí)間過(guò)期方式2:?jiǎn)为?dú)設(shè)置

每個(gè)賬號(hào)既可延用全局密碼過(guò)期策略,也可單獨(dú)設(shè)置策略。在 CREATE USER 和 ALTER USER 語(yǔ)句上加 入 PASSWORD EXPIRE 選項(xiàng)可實(shí)現(xiàn)單獨(dú)設(shè)置策略。下面是一些語(yǔ)句示例。

#設(shè)置kangshifu賬號(hào)密碼每90天過(guò)期:

CREATE USER 'kangshifu'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY;

ALTER USER 'kangshifu'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY;

#設(shè)置密碼永不過(guò)期:

CREATE USER 'kangshifu'@'localhost' PASSWORD EXPIRE NEVER;

ALTER USER 'kangshifu'@'localhost' PASSWORD EXPIRE NEVER;

#延用全局密碼過(guò)期策略:

CREATE USER 'kangshifu'@'localhost' PASSWORD EXPIRE DEFAULT;

ALTER USER 'kangshifu'@'localhost' PASSWORD EXPIRE DEFAULT;

7.2、密碼重置策略

手動(dòng)設(shè)置密碼重用:全局

方式1:使用sql

SET PERSIST password_history = 6; #設(shè)置不能選擇最近使用過(guò)的6個(gè)密碼

SET PERSIST password_reuse_interval = 365; #設(shè)置不能選擇最近一年內(nèi)的密碼

方式2:配置文件

[mysqld]

password_history=6

password_reuse_interval=365

手動(dòng)設(shè)置密碼重用:?jiǎn)为?dú)設(shè)置

#不能使用最近5個(gè)密碼:

CREATE USER 'kangshifu'@'localhost' PASSWORD HISTORY 5;

ALTER USER 'kangshifu'@'localhost' PASSWORD HISTORY 5;

#不能使用最近365天內(nèi)的密碼:

CREATE USER 'kangshifu'@'localhost' PASSWORD REUSE INTERVAL 365 DAY;

ALTER USER 'kangshifu'@'localhost' PASSWORD REUSE INTERVAL 365 DAY;

#既不能使用最近5個(gè)密碼,也不能使用365天內(nèi)的密碼

CREATE USER 'kangshifu'@'localhost'

PASSWORD HISTORY 5

PASSWORD REUSE INTERVAL 365 DAY;

ALTER USER 'kangshifu'@'localhost'

PASSWORD HISTORY 5

PASSWORD REUSE INTERVAL 365 DAY;

二、權(quán)限管理

1、 權(quán)限列表

MySQL到底都有哪些權(quán)限呢?

mysql show privileges;

(1) CREATE和DROP權(quán)限 ,可以創(chuàng)建新的數(shù)據(jù)庫(kù)和表,或刪除(移掉)已有的數(shù)據(jù)庫(kù)和表。如果將 MySQL數(shù)據(jù)庫(kù)中的DROP權(quán)限授予某用戶,用戶就可以刪除MySQL訪問(wèn)權(quán)限保存的數(shù)據(jù)庫(kù)。 (2) SELECT、INSERT、UPDATE和DELETE權(quán)限 允許在一個(gè)數(shù)據(jù)庫(kù)現(xiàn)有的表上實(shí)施操作。 (3) SELECT權(quán)限 只有在它們真正從一個(gè)表中檢索行時(shí)才被用到。 (4) INDEX權(quán)限 允許創(chuàng)建或刪除索引,INDEX適用于已 有的表。如果具有某個(gè)表的CREATE權(quán)限,就可以在CREATE TABLE語(yǔ)句中包括索引定義。 (5) ALTER權(quán) 限 可以使用ALTER TABLE來(lái)更改表的結(jié)構(gòu)和重新命名表。 (6) CREATE ROUTINE權(quán)限 用來(lái)創(chuàng)建保存的 程序(函數(shù)和程序),ALTER ROUTINE權(quán)限用來(lái)更改和刪除保存的程序, EXECUTE權(quán)限 用來(lái)執(zhí)行保存的 程序。 (7) GRANT權(quán)限 允許授權(quán)給其他用戶,可用于數(shù)據(jù)庫(kù)、表和保存的程序。 (8) FILE權(quán)限 使用 戶可以使用LOAD DATA INFILE和SELECT ... INTO OUTFILE語(yǔ)句讀或?qū)懛?wù)器上的文件,任何被授予FILE權(quán) 限的用戶都能讀或?qū)慚ySQL服務(wù)器上的任何文件(說(shuō)明用戶可以讀任何數(shù)據(jù)庫(kù)目錄下的文件,因?yàn)榉?wù) 器可以訪問(wèn)這些文件)。

2、 授予權(quán)限的原則

權(quán)限控制主要是出于安全因素,因此需要遵循以下幾個(gè) 經(jīng)驗(yàn)原則 :

1、只授予能 滿足需要的最小權(quán)限 ,防止用戶干壞事。比如用戶只是需要查詢,那就只給select權(quán)限就可 以了,不要給用戶賦予update、insert或者delete權(quán)限。

2、創(chuàng)建用戶的時(shí)候 限制用戶的登錄主機(jī) ,一般是限制成指定IP或者內(nèi)網(wǎng)IP段。

3、為每個(gè)用戶 設(shè)置滿足密碼復(fù)雜度的密碼 。

4、 定期清理不需要的用戶 ,回收權(quán)限或者刪除用戶。

3、 授予權(quán)限

給用戶授權(quán)的方式有 2 種,分別是通過(guò)把 角色賦予用戶給用戶授權(quán) 和 直接給用戶授權(quán) 。用戶是數(shù)據(jù)庫(kù)的 使用者,我們可以通過(guò)給用戶授予訪問(wèn)數(shù)據(jù)庫(kù)中資源的權(quán)限,來(lái)控制使用者對(duì)數(shù)據(jù)庫(kù)的訪問(wèn),消除安全 隱患。 授權(quán)命令:

GRANT 權(quán)限1,權(quán)限2,…權(quán)限n ON 數(shù)據(jù)庫(kù)名稱.表名稱 TO 用戶名@用戶地址 [IDENTIFIED BY ‘密碼口令’];

比如給li4用戶用本地命令行方式,授予atguigudb這個(gè)庫(kù)下的所有表的插刪改查的權(quán)限

GRANT SELECT,INSERT,DELETE,UPDATE ON atguigudb.* TO li4@localhost ;

比如授予通過(guò)網(wǎng)絡(luò)方式登錄的joe用戶 ,對(duì)所有庫(kù)所有表的全部權(quán)限,密碼設(shè)為123。注意這里唯獨(dú)不包

括grant的權(quán)限

GRANT ALL PRIVILEGES ON *.* TO joe@'%' IDENTIFIED BY '123';

我們?cè)陂_(kāi)發(fā)應(yīng)用的時(shí)候,經(jīng)常會(huì)遇到一種需求,就是要根據(jù)用戶的不同,對(duì)數(shù)據(jù)進(jìn)行橫向和縱向的 分組。 所謂橫向的分組,就是指用戶可以接觸到的數(shù)據(jù)的范圍,比如可以看到哪些表的數(shù)據(jù);

所謂縱向的分組,就是指用戶對(duì)接觸到的數(shù)據(jù)能訪問(wèn)到什么程度,比如能看、能改,甚至是 刪除。

4、 查看權(quán)限

查看當(dāng)前用戶權(quán)限

SHOW GRANTS;

# 或

SHOW GRANTS FOR CURRENT_USER;

# 或

SHOW GRANTS FOR CURRENT_USER();

查看某用戶的全局權(quán)限

SHOW GRANTS FOR 'user'@'主機(jī)地址' ;

5、收回權(quán)限

收回權(quán)限就是取消已經(jīng)賦予用戶的某些權(quán)限。收回用戶不必要的權(quán)限可以在一定程度上保證系統(tǒng)的安全 性。MySQL中使用 REVOKE語(yǔ)句 取消用戶的某些權(quán)限。使用REVOKE收回權(quán)限之后,用戶賬戶的記錄將從 db、host、tables_priv和columns_priv表中刪除,但是用戶賬戶記錄仍然在user表中保存(刪除user表中 的賬戶記錄使用DROP USER語(yǔ)句)。 注意:在將用戶賬戶從user表刪除之前,應(yīng)該收回相應(yīng)用戶的所有權(quán)限。

REVOKE 權(quán)限1,權(quán)限2,…權(quán)限n ON 數(shù)據(jù)庫(kù)名稱.表名稱 FROM 用戶名@用戶地址;

比如

#收回全庫(kù)全表的所有權(quán)限

REVOKE ALL PRIVILEGES ON *.* FROM joe@'%';

#收回mysql庫(kù)下的所有表的插刪改查權(quán)限

REVOKE SELECT,INSERT,UPDATE,DELETE ON mysql.* FROM joe@localhost;

注意: 須用戶重新登錄后才能生效

三、權(quán)限表

1、user表

user表是MySQL中最重要的一個(gè)權(quán)限表, 記錄用戶賬號(hào)和權(quán)限信息 ,有49個(gè)字段。如下圖:

這些字段可以分成4類(lèi),分別是范圍列(或用戶列)、權(quán)限列、安全列和資源控制列

范圍列(或用戶列)

權(quán)限列

安全列

安全列只有6個(gè)字段,其中兩個(gè)是ssl相關(guān)的(ssl_type、ssl_cipher),用于 加密 ;兩個(gè)是x509 相關(guān)的(x509_issuer、x509_subject),用于 標(biāo)識(shí)用戶 ;另外兩個(gè)Plugin字段用于 驗(yàn)證用戶身份 的插件, 該字段不能為空。如果該字段為空,服務(wù)器就使用內(nèi)建授權(quán)驗(yàn)證機(jī)制驗(yàn)證用戶身份。

資源控制列

資源控制列的字段用來(lái) 限制用戶使用的資源 ,包含4個(gè)字段,分別為: ①max_questions,用戶每小時(shí)允許執(zhí)行的查詢操作次數(shù); ②max_updates,用戶每小時(shí)允許執(zhí)行的更新 操作次數(shù); ③max_connections,用戶每小時(shí)允許執(zhí)行的連接操作次數(shù); ④max_user_connections,用戶 允許同時(shí)建立的連接次數(shù)。 查看字段:

DESC mysql.user;

查看用戶, 以列的方式顯示數(shù)據(jù): SELECT * FROM mysql.user \G;

查詢特定字段:

SELECT host,user,authentication_string,select_priv,insert_priv,drop_priv

FROM mysql.user;

2、db表

使用DESCRIBE查看db表的基本結(jié)構(gòu): DESCRIBE mysql.db;

1. 用戶列 db表用戶列有3個(gè)字段,分別是Host、User、Db。這3個(gè)字段分別表示主機(jī)名、用戶名和數(shù)據(jù)庫(kù) 名。表示從某個(gè)主機(jī)連接某個(gè)用戶對(duì)某個(gè)數(shù)據(jù)庫(kù)的操作權(quán)限,這3個(gè)字段的組合構(gòu)成了db表的主鍵。

2. 權(quán)限列 Create_routine_priv和Alter_routine_priv這兩個(gè)字段決定用戶是否具有創(chuàng)建和修改存儲(chǔ)過(guò)程的權(quán)限。

3、 tables_priv表和columns_priv表

tables_priv表用來(lái) 對(duì)表設(shè)置操作權(quán)限 ,columns_priv表用來(lái)對(duì)表的 某一列設(shè)置權(quán)限 。tables_priv表和 columns_priv表的結(jié)構(gòu)分別如圖: desc mysql.tables_priv;

tables_priv表有8個(gè)字段,分別是Host、Db、User、Table_name、Grantor、Timestamp、Table_priv和 Column_priv,各個(gè)字段說(shuō)明如下:

Host 、 Db 、 User 和 Table_name 四個(gè)字段分別表示主機(jī)名、數(shù)據(jù)庫(kù)名、用戶名和表名。

Grantor表示修改該記錄的用戶。

Timestamp表示修改該記錄的時(shí)間。

Table_priv 表示對(duì)象的操作權(quán)限。包括Select、Insert、Update、Delete、Create、Drop、Grant、

References、Index和Alter。

Column_priv字段表示對(duì)表中的列的操作權(quán)限,包括Select、Insert、Update和References。

desc mysql.columns_priv;

4、 procs_priv表

procs_priv表可以對(duì) 存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)設(shè)置操作權(quán)限 ,表結(jié)構(gòu)如圖: desc mysql.procs_priv;

四、訪問(wèn)控制

1、連接核實(shí)階段

當(dāng)用戶試圖連接MySQL服務(wù)器時(shí),服務(wù)器基于用戶的身份以及用戶是否能提供正確的密碼驗(yàn)證身份來(lái)確 定接受或者拒絕連接。即客戶端用戶會(huì)在連接請(qǐng)求中提供用戶名、主機(jī)地址、用戶密碼,MySQL服務(wù)器 接收到用戶請(qǐng)求后,會(huì)使用user表中的host、user和authentication_string這3個(gè)字段匹配客戶端提供信 息。 服務(wù)器只有在user表記錄的Host和User字段匹配客戶端主機(jī)名和用戶名,并且提供正確的密碼時(shí)才接受 連接。如果連接核實(shí)沒(méi)有通過(guò),服務(wù)器就完全拒絕訪問(wèn);否則,服務(wù)器接受連接,然后進(jìn)入階段2等待 用戶請(qǐng)求。

2、 請(qǐng)求核實(shí)階段

一旦建立了連接,服務(wù)器就進(jìn)入了訪問(wèn)控制的階段2,也就是請(qǐng)求核實(shí)階段。對(duì)此連接上進(jìn)來(lái)的每個(gè)請(qǐng) 求,服務(wù)器檢查該請(qǐng)求要執(zhí)行什么操作、是否有足夠的權(quán)限來(lái)執(zhí)行它,這正是需要授權(quán)表中的權(quán)限列發(fā) 揮作用的地方。這些權(quán)限可以來(lái)自u(píng)ser、db、table_priv和column_priv表。 確認(rèn)權(quán)限時(shí),MySQL首先 檢查user表 ,如果指定的權(quán)限沒(méi)有在user表中被授予,那么MySQL就會(huì)繼續(xù) 檢 查db表 ,db表是下一安全層級(jí),其中的權(quán)限限定于數(shù)據(jù)庫(kù)層級(jí),在該層級(jí)的SELECT權(quán)限允許用戶查看指 定數(shù)據(jù)庫(kù)的所有表中的數(shù)據(jù);如果在該層級(jí)沒(méi)有找到限定的權(quán)限,則MySQL繼續(xù) 檢查tables_priv表 以 及 columns_priv表 ,如果所有權(quán)限表都檢查完畢,但還是沒(méi)有找到允許的權(quán)限操作,MySQL將 返回錯(cuò) 誤信息 ,用戶請(qǐng)求的操作不能執(zhí)行,操作失敗。

提示: MySQL通過(guò)向下層級(jí)的順序(從user表到columns_priv表)檢查權(quán)限表,但并不是所有的權(quán) 限都要執(zhí)行該過(guò)程。例如,一個(gè)用戶登錄到MySQL服務(wù)器之后只執(zhí)行對(duì)MySQL的管理操作,此時(shí)只 涉及管理權(quán)限,因此MySQL只檢查user表。另外,如果請(qǐng)求的權(quán)限操作不被允許,MySQL也不會(huì)繼 續(xù)檢查下一層級(jí)的表。

五、角色管理

1、創(chuàng)建角色

CREATE ROLE 'role_name'[@'host_name'] [,'role_name'[@'host_name']]...

角色名稱的命名規(guī)則和用戶名類(lèi)似。如果 host_name省略,默認(rèn)為% , role_name不可省略 ,不可為 空。

練習(xí):我們現(xiàn)在需要?jiǎng)?chuàng)建一個(gè)經(jīng)理的角色,就可以用下面的代碼:

CREATE ROLE 'manager'@'localhost';

2、給角色賦予權(quán)限

創(chuàng)建角色之后,默認(rèn)這個(gè)角色是沒(méi)有任何權(quán)限的,我們需要給角色授權(quán)。給角色授權(quán)的語(yǔ)法結(jié)構(gòu)是:

GRANT privileges ON table_name TO 'role_name'[@'host_name'];

上述語(yǔ)句中privileges代表權(quán)限的名稱,多個(gè)權(quán)限以逗號(hào)隔開(kāi)。可使用SHOW語(yǔ)句查詢權(quán)限名稱,圖11-43 列出了部分權(quán)限列表。

SHOW PRIVILEGES\G;

練習(xí)1:我們現(xiàn)在想給經(jīng)理角色授予商品信息表、盤(pán)點(diǎn)表和應(yīng)付賬款表的只讀權(quán)限,就可以用下面的代碼 來(lái)實(shí)現(xiàn):

GRANT SELECT ON demo.settlement TO 'manager';

GRANT SELECT ON demo.goodsmaster TO 'manager';

GRANT SELECT ON demo.invcount TO 'manager';

3、查看角色權(quán)限

賦予角色權(quán)限之后,我們可以通過(guò) SHOW GRANTS 語(yǔ)句,來(lái)查看權(quán)限是否創(chuàng)建成功了:

只要你創(chuàng)建了一個(gè)角色,系統(tǒng)就會(huì)自動(dòng)給你一個(gè)“ USAGE ”權(quán)限,意思是 連接登錄數(shù)據(jù)庫(kù)的權(quán)限 。代碼的 最后三行代表了我們給角色“manager”賦予的權(quán)限,也就是對(duì)商品信息表、盤(pán)點(diǎn)表和應(yīng)付賬款表的只讀權(quán) 限。 結(jié)果顯示,庫(kù)管角色擁有商品信息表的只讀權(quán)限和盤(pán)點(diǎn)表的增刪改查權(quán)限。

4、回收角色權(quán)限

角色授權(quán)后,可以對(duì)角色的權(quán)限進(jìn)行維護(hù),對(duì)權(quán)限進(jìn)行添加或撤銷(xiāo)。添加權(quán)限使用GRANT語(yǔ)句,與角色 授權(quán)相同。撤銷(xiāo)角色或角色權(quán)限使用REVOKE語(yǔ)句。 修改了角色的權(quán)限,會(huì)影響擁有該角色的賬戶的權(quán)限。 撤銷(xiāo)角色權(quán)限的SQL語(yǔ)法如下:

REVOKE privileges ON tablename FROM 'rolename';

練習(xí):撤銷(xiāo)school_write角色的權(quán)限。 (

(1)使用如下語(yǔ)句撤銷(xiāo)school_write角色的權(quán)限。

REVOKE INSERT, UPDATE, DELETE ON school.* FROM 'school_write';

(2)撤銷(xiāo)后使用SHOW語(yǔ)句查看school_write對(duì)應(yīng)的權(quán)限,語(yǔ)句如下。

SHOW GRANTS FOR 'school_write';

5、刪除角色

當(dāng)我們需要對(duì)業(yè)務(wù)重新整合的時(shí)候,可能就需要對(duì)之前創(chuàng)建的角色進(jìn)行清理,刪除一些不會(huì)再使用的角 色。刪除角色的操作很簡(jiǎn)單,你只要掌握語(yǔ)法結(jié)構(gòu)就行了。

DROP ROLE role [,role2]...

注意, 如果你刪除了角色,那么用戶也就失去了通過(guò)這個(gè)角色所獲得的所有權(quán)限 。 練習(xí):執(zhí)行如下SQL刪除角色school_read。

DROP ROLE 'school_read';

6、給用戶賦予角色

角色創(chuàng)建并授權(quán)后,要賦給用戶并處于 激活狀態(tài) 才能發(fā)揮作用。給用戶添加角色可使用GRANT語(yǔ)句,語(yǔ) 法形式如下:

GRANT role [,role2,...] TO user [,user2,...];

在上述語(yǔ)句中,role代表角色,user代表用戶。可將多個(gè)角色同時(shí)賦予多個(gè)用戶,用逗號(hào)隔開(kāi)即可。 練習(xí):給kangshifu用戶添加角色school_read權(quán)限。 (1)使用GRANT語(yǔ)句給kangshifu添加school_read權(quán) 限,SQL語(yǔ)句如下。

GRANT 'school_read' TO 'kangshifu'@'localhost';

(2)添加完成后使用SHOW語(yǔ)句查看是否添加成功,SQL語(yǔ)句如下。

SHOW GRANTS FOR 'kangshifu'@'localhost';

(3)使用kangshifu用戶登錄,然后查詢當(dāng)前角色,如果角色未激活,結(jié)果將顯示NONE。SQL語(yǔ)句如 下。

SELECT CURRENT_ROLE();

7、激活角色

方式1:使用set default role 命令激活角色

SET DEFAULT ROLE ALL TO 'kangshifu'@'localhost';

使用 SET DEFAULT ROLE 為下面4個(gè)用戶默認(rèn)激活所有已擁有的角色如下:

SET DEFAULT ROLE ALL TO

'dev1'@'localhost',

'read_user1'@'localhost',

'read_user2'@'localhost',

'rw_user1'@'localhost';

方式2:將activate_all_roles_on_login設(shè)置為ON

show variables like 'activate_all_roles_on_login';

SET GLOBAL activate_all_roles_on_login=ON;

這條 SQL 語(yǔ)句的意思是,對(duì) 所有角色永久激活 。運(yùn)行這條語(yǔ)句之后,用戶才真正擁有了賦予角色的所有 權(quán)限。

8、撤銷(xiāo)用戶角色

REVOKE role FROM user;

練習(xí):撤銷(xiāo)kangshifu用戶的school_read角色。 (1)撤銷(xiāo)的SQL語(yǔ)句如下

REVOKE 'school_read' FROM 'kangshifu'@'localhost';

(2)撤銷(xiāo)后,執(zhí)行如下查詢語(yǔ)句,查看kangshifu用戶的角色信息

SHOW GRANTS FOR 'kangshifu'@'localhost';

9、設(shè)置強(qiáng)制角色

設(shè)置強(qiáng)制角色(mandatory role)

方式1:服務(wù)啟動(dòng)前設(shè)置

[mysqld]

mandatory_roles='role1,role2@localhost,r3@%.atguigu.com'

方式2:運(yùn)行時(shí)設(shè)置

SET PERSIST mandatory_roles = 'role1,role2@localhost,r3@%.example.com'; #系統(tǒng)重啟后仍然 有效 SET GLOBAL mandatory_roles = 'role1,role2@localhost,r3@%.example.com'; #系統(tǒng)重啟后失效

標(biāo)題名稱:聯(lián)想mysql80怎么不能設(shè)的簡(jiǎn)單介紹
鏈接URL:http://www.yijiale78.com/article22/hgcojc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化定制開(kāi)發(fā)外貿(mào)建站網(wǎng)站設(shè)計(jì)微信公眾號(hào)電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作