[toc]
[toc]
## 1 訪問控制
mysql伺服器的安全基礎是:使用者應該對他們需要的資料具有適當的訪問權,既不能多也不能少。換句話說,使用者不能對過多的資料具有過多的訪問權。
>不要使用root
應該嚴肅對待root登入的使用。僅在絕對需要時使用它(或許在你不能登入其他管理賬號時使用)。不應
該在日常的mysql操作中使用root。
## 2 管理使用者
> mysql使用者賬號和資訊儲存在名為mysql的mysql資料庫中。一般不需要直接訪問mysql資料庫和表(你稍後會明白這一點),但有時需要直接訪問。需要直接訪問它的時機之一是在需要獲得所有使用者賬號列表
時。輸入: use mysql;
select user from user;
分析:mysql資料庫有乙個名為user的表,它包含所有使用者賬號。user
表有乙個名為user的列,它儲存使用者登入名。
### 2.1建立使用者賬號
為了建立乙個新使用者賬號,使用create user語句
create user ben identified by 'password';
create user 'root'@'127.0.0.1' identified by '*root-password*';
create user 'root'@'::1' identified by '*root-password*';
reate user建立乙個新使用者賬號。在建立使用者賬號時不一定需
要口令,不過這個例子用identified by 'password'給出了乙個口令。
!(關於 mysql 密碼策略相關引數;
1)validate_password_length 固定密碼的總長度;
2)validate_password_dictionary_file 指定密碼驗證的檔案路徑;
3)validate_password_mixed_case_count 整個密碼中至少要包含大/小寫字母的總個數;
4)validate_password_number_count 整個密碼中至少要包含阿拉伯數字的個數;
5)validate_password_policy 指定密碼的強度驗證等級,預設為 medium;
關於 validate_password_policy 的取值:
0/low:只驗證長度;
1/medium:驗證長度、數字、大小寫、特殊字元;
2/strong:驗證長度、數字、大小寫、特殊字元、字典檔案;
6)、validate_password_special_char_count 整個密碼中至少要包含特殊字元的個數;
為重命名乙個使用者賬號,使用rename user語句,
rename user ben to lisa;
### 2.2 刪除使用者賬號
為了刪除乙個使用者賬號(以及相關的許可權),使用drop user語句,
drop user ben;
### 2.3 設定訪問許可權
在建立使用者賬號後,必須接著分配訪問許可權。新建立的使用者賬號沒有訪
問許可權。它們能登入mysql,但不能看到資料,不能執行任何資料庫操作。
> 為看到賦予使用者賬號的許可權,使用show grants for,
show grants for ben;
為設定許可權,使用grant語句。grant要求你至少給出以下資訊:
要授予的許可權;
被授予訪問許可權的資料庫或表;
使用者名稱。
以下例子給出grant的用法:
grant select on test.* to ben;
分析:此grant允許使用者在test.*(test資料庫的所
有表)上使用select。通過只授予select訪問許可權,使用者ben
對 test 資料庫中的所有資料具有唯讀訪問許可權。
*grant*的反操作為**revoke**,用它來撤銷特定的許可權。下面舉乙個例子:
revoke select on test.* from ben;
分析:這條revoke語句取消剛賦予使用者ben的select訪問許可權。被
撤銷的訪問許可權必須存在,否則會出錯。
grant和revoke可在幾個層次上控制訪問許可權:
整個伺服器,使用grant all和revoke all;
整個資料庫,使用on database.*;
特定的表,使用on database.table;
特定的列;
特定的儲存過程。
### 2.4更改口令
為了更改使用者口令,可使用set password語句。新口令必須如下加密:
set password for ben = password('12ddd');
分析: set password更新使用者口令。新口令必須傳遞到password()函
數進行加密。
> set password還可以用來設定你自己的口令:
> 輸入: set password = password('w3c@2020')
> 分析:在不指定使用者名稱時,set password更新當前登入使用者的口令。
MySQL建立賬號
以root使用者登入資料庫,執行以下命令 create user zhangsan identified by zhangsan 上面的命令建立了使用者zhangsan,密碼是zhangsan。在mysql.user表裡可以檢視到新增使用者的資訊 命令格式 grant privilegescode ...
mysql使用者和賬號
mysql使用者和賬號 mysql學習二 客戶端要連線oracle只有提供使用者名稱 密碼 網路字串就可以了 mysql客戶端要連線伺服器要提供賬號和密碼.賬號 使用者名稱 ip 建乙個user不是建乙個使用者而是建乙個賬號,同樣刪除乙個uesr也是刪除乙個賬號。root是使用者名稱,root lo...
建立MySQL子賬號
一 建立子賬號 create user test localhost identified by 123456 這種建立方式只能本地登入 create user test identified by 123456 這種建立方式可以遠端登入,即別的地方可以登入 二 新增許可權 語法 代表所有連線 gr...