mysql 賬號安全 mysql 賬號安全管理

2021-10-17 17:25:27 字數 2561 閱讀 7541

[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...