免费A级毛片无码专区网站-成人国产精品视频一区二区-啊 日出水了 用力乖乖在线-国产黑色丝袜在线观看下-天天操美女夜夜操美女-日韩网站在线观看中文字幕-AV高清hd片XXX国产-亚洲av中文字字幕乱码综合-搬开女人下面使劲插视频

MySQL用戶也可以是個角色

前言角色(Role) , 可以認為是一些權(quán)限的集合 , 一直是存在各個數(shù)據(jù)庫中 , 比如Oracle、SQL Server、OceanBase等 , MySQL 自從 8.0 release 才引入角色這個概念 。為用戶賦予統(tǒng)一的角色 , 即把一個帶有某些權(quán)限集合的角色分配給一個用戶 , 那該用戶就擁有了該角色所包含的所有權(quán)限 , 權(quán)限的修改直接通過角色來進行 , 無需為每個用戶單獨授權(quán) , 大大的方便了權(quán)限管理 。一、回顧MySQL 8.0之前的用戶管理1、創(chuàng)建用戶(默認缺省)從 CREATE USER 的 help 語法解釋中發(fā)現(xiàn) , 其不僅可以創(chuàng)建新的 MySQL 帳戶 , 還支持為新帳戶建立身份驗證、SSL/TLS、資源限制和密碼管理屬性 , 并控制帳戶最初是鎖定還是解鎖 。那么 , 缺省選項默認創(chuàng)建的用戶是怎么樣的呢?mysql> CREATE USER kuzma IDENTIFIED BY 'iamkuzma';Query OK, 0 rows affected (0.07 sec)mysql> select * from mysql.user where User="kuzma"\G*************************** 1. row ***************************Host: %User: kuzmaSelect_priv: NInsert_priv: NUpdate_priv: NDelete_priv: NCreate_priv: NDrop_priv: NReload_priv: NShutdown_priv: NProcess_priv: NFile_priv: NGrant_priv: NReferences_priv: NIndex_priv: NAlter_priv: NShow_db_priv: NSuper_priv: N Create_tmp_table_priv: NLock_tables_priv: NExecute_priv: NRepl_slave_priv: NRepl_client_priv: NCreate_view_priv: NShow_view_priv: NCreate_routine_priv: NAlter_routine_priv: NCreate_user_priv: NEvent_priv: NTrigger_priv: NCreate_tablespace_priv: Nssl_type:ssl_cipher: 0xx509_issuer: 0xx509_subject: 0xmax_questions: 0max_updates: 0max_connections: 0max_user_connections: 0plugin: mysql_native_password authentication_string: *E2D9547BC3A2AD2EEC6BE9636489AC973656EEB9password_expired: N password_last_changed: 2022-10-05 17:41:06password_lifetime: NULLaccount_locked: N1 row in set (0.06 sec)如上 , 在 CREATE USER 后會在 mysql.user 系統(tǒng)表中注冊相關(guān)用戶信息 , 未指定的屬性設(shè)置為其默認值:

  • 帳戶名的主機名部分 , 如果省略 , 則默認為'%' , 即 'kuzma'@'%' , 表示不限主機連接
  • Authentication:系統(tǒng)變量定義的認證插件 default_authentication_plugin = mysql_native_password  , 空憑證
  • SSL/TLS:NONE
  • 資源限制:無限制 , max_questions最大查詢數(shù)、max_updates最大更新數(shù)等都為0(默認值) , 即未做限制
  • 密碼管理:PASSWORD EXPIRE DEFAULT
  • 密碼過期:NONE , 未設(shè)定 , 即永不過期
  • 賬戶鎖定:ACCOUNT UNLOCK , 未鎖定
首次創(chuàng)建的帳戶沒有權(quán)限 , xxx_priv都為NONE , 默認未設(shè)置用戶權(quán)限 , 若需要分配權(quán)限 , 另外的通過 GRANT 語句為用戶授權(quán) 。若要刪除用戶 , DROP USER 'kuzma'@'%'; 注意指定用戶名和主機名 。2、帶選項創(chuàng)建用戶2.1、設(shè)置密碼過期# 將密碼標記為過期 , 用戶在第一次連接到服務(wù)器時必須選擇一個新密碼CREATE USER 'kuzma'@'localhost' PASSWORD EXPIRE;# 默認過期時間 , 應(yīng)用 default_password_lifetime 系統(tǒng)變量指定的全局過期策略CREATE USER 'kuzma'@'localhost' PASSWORD EXPIRE DEFAULT;# 禁用密碼過期 , 永不過期CREATE USER 'kuzma'@'localhost' PASSWORD EXPIRE NEVER;# 設(shè)定過期時間 , 每 180 天選擇一個新密碼CREATE USER 'kuzma'@'localhost' PASSWORD EXPIRE INTERVAL 180 DAY;2.2、身份驗證及SSL/TLS# 指定身份驗證插件 , 及明文密碼值CREATE USER 'kuzma'@'localhost'IDENTIFIED WITH mysql_native_password BY 'iamkuzma';# CREATE USER 時指定 tls_option 值# 注:生產(chǎn)數(shù)據(jù)庫通常不會做加密連接 , 減少不必要的連接限制tls_option: {SSL | X509 | CIPHER 'cipher' | ISSUER 'issuer' | SUBJECT 'subject'}# 默認缺省為REQUIRE NONE , 即沒有 SSL 或 X.509 要求 , 如果用戶名和密碼有效 , 則允許未加密的連接CREATE USER 'kuzma'@'localhost' REQUIRE NONE;# 加密連接限制 , 如果客戶端無法建立安全連接 , 則連接嘗試失敗CREATE USER 'kuzma'@'localhost' REQUIRE SSL;

經(jīng)驗總結(jié)擴展閱讀