mysql安全管理 MySQL 安全管理

2021-10-19 19:23:31 字數 3150 閱讀 4693

1.使用者管理

mysql將帳戶儲存在系統資料庫mysql的user表,mysql使用者名稱最長可達32個字元

檢視所有使用者

select user,host,authentication_string from user;

檢視當前使用者的許可權

show grants;

檢視gg使用者許可權

show grants for gg;

新增使用者,%是萬用字元,代表任何ip

create user 'finley'@'%' identified by 'password';

新增許可權

grant all privileges on . to finley@'%' with grant option;

修改密碼

alter user gg@'%' identified by '111111';

撤銷許可權

revoke all on . from finley@'%';

刪除使用者

drop user finley;

重新整理許可權

flush privileges;

mysqladmin -u root -p flush-privileges

mysqladmin -u root -p reload

2.角色管理

建立角色:角色名稱與使用者帳戶名稱非常相似,並且由格式的使用者部分和主機部分組成,主機部分可以省略,預設為%

create role 'dev';

為角色??分配許可權,與為使用者帳戶分配許可權的語法相同

grant all on . to 'dev';

撤銷角色許可權

revoke all on . from dev;

使用角色分配為使用者分配許可權

create user 'dev1'@'localhost' identified by 'dev1pass';

grant 'dev' to 'dev1'@'localhost';

撤銷使用者許可權

revoke dev from 'dev1'@'localhost';

刪除角色

drop role 'dev';

3.資源限制

設定帳戶資源限制

create user 'francis'@'localhost' identified by 'frank'

with max_queries_per_hour 20 帳戶每小時可以發出的查詢數

max_updates_per_hour 10 帳戶每小時可以發布的更新次數

max_connections_per_hour 5 帳戶每小時可以連線到伺服器的次數

max_user_connections 2; 帳戶與伺服器同時連線的數量

修改現有帳戶的限制

alter user 'francis'@'localhost' with max_queries_per_hour 100;

要將所有帳戶的當前計數重置為零

flush user_resources

flush privileges

mysqladmin -u root -p flush-privileges

mysqladmin -u root -p reload

4.密碼管理

手動過期帳戶密碼:還可以連線資料庫,但是沒有許可權,修改密碼後之前的許可權生效

alter user 'gg'@'%' password expire;

flush privileges;

密碼過期策略

[mysqld]

default_password_lifetime=180

default_password_lifetime=0

或set persist default_password_lifetime = 180; 半年後過期

set persist default_password_lifetime = 0; 永不過期

要求密碼每90天更改一次:

create user 'gg'@'%' password expire interval 90 day;

alter user 'gg'@'%' password expire interval 90 day;

禁用密碼到期:

create user 'gg'@'%' password expire never;

alter user 'gg'@'%' password expire never;

禁止重複使用365天以前的最後6個密碼

[mysqld]

password_history=6

password_reuse_interval=365

或set persist password_history = 6;

set persist password_reuse_interval = 365;

允許重用之前,至少需要更改5個密碼:

create user 'jeffrey'@'localhost' password history 5;

alter user 'jeffrey'@'localhost' password history 5;

在允許重用之前至少需要365天:

create user 'jeffrey'@'localhost' password reuse interval 365 day;

alter user 'jeffrey'@'localhost' password reuse interval 365 day;

結合這兩種型別的重用限制:

create user 'jeffrey'@'localhost'

password history 5

password reuse interval 365 day;

alter user 'jeffrey'@'localhost'

password history 5

password reuse interval 365 day;

雙密碼支援,8.0.14版本以後

建立 新的主密碼,將當前密碼保留為輔助密碼

alter user 'gg'@'%' identified by '111111' retain current password;

刪除輔助密碼

alter user 'gg'@'%' discard old password;

mysql安全管理 MySQL安全管理

資料庫伺服器通常包含關鍵的資料,確保這些資料的安全和完整需要利用訪問控制。一 訪問控制 mysql伺服器的安全基礎 使用者應該對他們需要的資料具有適當的訪問權,既不能多也不能少。訪問控制 你需要給使用者提供他們所需的訪問權,且僅提供他們所需的訪問權。在日常工作中,絕不能使用root,應該建立一系列的...

mysql登入安全管理 MySQL 安全管理

1.使用者管理 mysql將帳戶儲存在系統資料庫mysql的user表,mysql使用者名稱最長可達32個字元 檢視所有使用者 select user,host,authentication string from user 檢視當前使用者的許可權 show grants 檢視gg使用者許可權 sh...

mysql登入安全管理 MySQL安全管理教程

mysql伺服器的安全基礎是 使用者應該對他們需要的資料具有適當 的訪問權,既不能多也不能少。換句話說,使用者不能對過多的資料具有 過多的訪問權。考慮以下內容 1.多數使用者只需要對錶進行讀和寫,但少數使用者甚至需要能建立和 刪除表 2.某些使用者需要讀表,但可能不需要更新表 3.你可能想允許使用者...