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.你可能想允許使用者...