MySQL的SQL語句 - 資料庫管理語句 - 帳戶管理語句 - CREATE USER 語句(3)

2021-02-20 資料庫雜貨鋪
可以對帳戶使用伺服器資源進行限制。要這麼做,可以使用 WITH 子句指定一個或多個 resource_option 值。WITH 選項的順序無關緊要,但如果多次指定給定的資源限制,則最後一個實例優先。CREATE USER 允許以下這些 resource_option 值:● MAX_QUERIES_PER_HOUR count, MAX_UPDATES_PER_HOUR count, MAX_CONNECTIONS_PER_HOUR count對於語句指定的所有帳戶,這些選項限制在一小時內允許每個帳戶對伺服器進行多少查詢、更新和連接。如果 count 為0(默認值),則表示該帳戶沒有限制。● MAX_USER_CONNECTIONS count對於語句指定的所有帳戶,限制每個帳戶同時連接到伺服器的最大數目。非零數明確指定帳戶的限制。如果 count 為0(默認值),伺服器將根據 max_user_connections 系統變量的全局值確定帳戶的同時連接數。如果 max_user_connections 也為零,則帳戶沒有限制。
CREATE USER 'jeffrey'@'localhost'  WITH MAX_QUERIES_PER_HOUR 500 MAX_UPDATES_PER_HOUR 100;

CREATE USER 支持多個 password_option 值用於密碼管理:● 密碼過期選項:可以手動使帳戶密碼過期,並建立其密碼過期策略。策略選項不會使密碼過期。它們根據密碼期限來確定伺服器如何對帳戶應用自動過期,密碼期限是從最近帳戶密碼更改的日期和時間開始計算的。● 密碼重用選項:可以根據密碼更改的次數、經過的時間或結合這兩者來限制密碼重用。● 密碼驗證要求選項:可以指示更改帳戶密碼的嘗試是否必須指定當前密碼,以驗證嘗試進行更改的用戶是否確實知道當前密碼。● 密碼錯誤登錄失敗跟蹤選項:可以使伺服器跟蹤失敗登錄,並臨時鎖定提供過多連續錯誤密碼的帳戶。失敗次數和鎖定時間是可配置的。如果指定了給定類型的多個密碼管理選項,則最後一個選項優先。例如,PASSWORD EXPIRE DEFAULT PASSWORD EXPIRE NEVER 與 PASSWORD EXPIRE NEVER 相同。如果帳戶密碼是主動設置過期,或者根據自動過期策略認為密碼期限大於其允許的生存期,則客戶端的密碼過期。在這種情況下,伺服器要麼斷開客戶機的連接,要麼限制其操作。受限客戶端執行的操作將導致錯誤,直到用戶建立新的帳戶密碼。CREATE USER 允許以下這些 password_option 值用於控制密碼過期:
CREATE USER 'jeffrey'@'localhost' PASSWORD EXPIRE;

● PASSWORD EXPIRE DEFAULT設置語句指定的所有帳戶應用由 default_password_lifetime 系統變量指定的全局過期策略。
CREATE USER 'jeffrey'@'localhost' PASSWORD EXPIRE DEFAULT;

此過期選項將覆蓋由該語句指定的所有帳戶的全局策略。對於每個帳戶,它都禁用密碼過期,這樣密碼就永遠不會過期。
CREATE USER 'jeffrey'@'localhost' PASSWORD EXPIRE NEVER;

● PASSWORD EXPIRE INTERVAL N DAY此過期選項將覆蓋由該語句指定的所有帳戶的全局策略。對於每個帳戶,它將密碼生存期設置為 N 天。以下語句要求每180天更改一次密碼:
CREATE USER 'jeffrey'@'localhost' PASSWORD EXPIRE INTERVAL 180 DAY;

CREATE USER 允許以下這些 password_option 值根據所需的最少密碼更改次數控制以前密碼的重用:● PASSWORD HISTORY DEFAULT設置語句指定的所有帳戶應用有關密碼歷史記錄長度的全局策略,以禁止在 password_history 系統變量指定的更改次數之前重用密碼。
CREATE USER 'jeffrey'@'localhost' PASSWORD HISTORY DEFAULT;

此歷史長度選項將覆蓋由語句指定的所有帳戶的全局策略。對於每個帳戶,它將密碼歷史長度設置為 N,以禁止重用最近選擇的 N 個密碼中的任何一個。以下語句禁止重複使用前 6 個密碼中的任何一個:
CREATE USER 'jeffrey'@'localhost' PASSWORD HISTORY 6;

CREATE USER 允許以下這些 password_option 值用於根據時間控制以前密碼的重用:● PASSWORD REUSE INTERVAL DEFAULT設置由語句指定的所有帳戶應用有關已用時間的全局策略,以禁止重用比 password_reuse_interval 系統變量指定的天數少的密碼。
CREATE USER 'jeffrey'@'localhost' PASSWORD REUSE INTERVAL DEFAULT;

● PASSWORD REUSE INTERVAL N DAY此已過時間選項將覆蓋由該語句指定的所有帳戶的全局策略。對於每一個帳戶,它將密碼重用間隔設置為 N 天,以禁止重用這麼多天以內更新的密碼。以下語句禁止在 360 天內重複使用密碼:
CREATE USER 'jeffrey'@'localhost' PASSWORD REUSE INTERVAL 360 DAY;

CREATE USER 允許以下這些 password_option 值,用於控制更改帳戶密碼是否必須指定當前密碼,以驗證嘗試更改的用戶是否真正知道當前密碼:● PASSWORD REQUIRE CURRENT此驗證選項將覆蓋由該語句指定的所有帳戶的全局策略。對於每個帳戶,它要求更改密碼要指定當前密碼。
CREATE USER 'jeffrey'@'localhost' PASSWORD REQUIRE CURRENT;

● PASSWORD REQUIRE CURRENT OPTIONAL此驗證選項將覆蓋由該語句指定的所有帳戶的全局策略。對於每個帳戶,它不要求更改密碼時指定當前密碼。(可以提供當前密碼,但不是必須的。)
CREATE USER 'jeffrey'@'localhost' PASSWORD REQUIRE CURRENT OPTIONAL;

● PASSWORD REQUIRE CURRENT DEFAULT設置由語句指定的所有帳戶應用 password_require_current 系統變量指定的有關密碼驗證的全局策略。
CREATE USER 'jeffrey'@'localhost' PASSWORD REQUIRE CURRENT DEFAULT;

從 MySQL 8.0.19 開始,CREATE USER 允許以下這些 password_option 值來控制登錄失敗跟蹤:● FAILED_LOGIN_ATTEMPTS N是否跟蹤密碼錯誤的帳戶登錄。N 必須是 0 到 32767 之間的數字。值 0 將禁用登錄失敗跟蹤。大於 0 的值表示多少連續的密碼失敗導致臨時鎖定帳戶(如果 PASSWORD_LOCK_TIME 也非零)。● PASSWORD_LOCK_TIME {N | UNBOUNDED}連續多次登錄提供不正確的密碼後鎖定帳戶的時間。N 必須是 0 到 32767 之間的數字,或者是 UNBOUNDED。值為 0 將禁用臨時帳戶鎖定。大於 0 的值表示以天為單位鎖定帳戶的時間。值 UNBOUNDED 表示帳戶鎖定持續時間不受限制;一旦鎖定,帳戶將保持鎖定狀態,直到解鎖。要進行登錄失敗跟蹤和臨時鎖定,帳戶的 FAILED_LOGIN_ATTEMPTS 和密 PASSWORD_LOCK_TIME 選項都必須為非零。以下語句創建的帳戶在連續四次密碼失敗後保持鎖定兩天:
CREATE USER 'jeffrey'@'localhost'  FAILED_LOGIN_ATTEMPTS 4 PASSWORD_LOCK_TIME 2;

MySQL 支持使用 ACCOUNT LOCK 和 ACCOUNT UNLOCK 選項鎖定和解鎖帳戶,這兩個選項指定帳戶的鎖定狀態。如果語句成功,CREATE USER 將被寫入二進位日誌,但如果失敗則不會;失敗時將發生回滾,並且不會進行任何更改。寫入二進位日誌的語句包含所有指定用戶。如果給定了 IF NOT EXISTS 子句,則還包括已經存在所以未創建的用戶。寫入二進位日誌的語句為每個用戶指定一個身份驗證插件,確定如下:否則是默認的身份驗證插件。特別是,如果用戶 u1 已經存在並且使用了非默認的身份驗證插件,那麼 CREATE USER IF NOT EXISTS u1 的二進位日誌的語句將指定為默認的身份驗證插件。(如果寫入二進位日誌的語句必須為用戶指定非默認身份驗證插件,請將其包含在原始語句中。)● 如果伺服器為不存在的用戶添加默認的身份驗證插件的語句寫入二進位日誌,它會向錯誤日誌中寫入一個警告,記錄這些用戶。如果原始語句指定了 FAILED_LOGIN_ATTEMPTS 或 PASSWORD_LOCK_TIME 選項,則寫入二進位日誌的語句將包含這些選項。https://dev.mysql.com/doc/refman/8.0/en/create-user.html

相關焦點

  • MySQL的SQL語句 - 資料庫管理語句 - 帳戶管理語句 - RENAME USER 語句
    old_user TO new_user [, old_user TO new_user] ... RENAME USER 語句重命名現有的 MySQL 帳戶。如果對不存在的舊帳戶進行重命名,或者將帳號命名成已存在的帳戶將發生錯誤。 要使用 RENAME USER,必須具有全局 CREATE USER 權限,或者 mysql 系統架構的 UPDATE 權限。
  • MySQL的SQL語句 - 資料庫管理語句 - 帳戶管理語句 - GRANT 語句 (3)
    全局權限是對給定伺服器上的所有資料庫進行的管理或應用。
  • MySQL的SQL語句 - 資料庫管理語句 - 帳戶管理語句 - REVOKE 語句
    user_or_role: { user (see Section 6.2.4, 「Specifying Account Names」) | role (see Section 6.2.5, 「Specifying Role Names」.}REVOKE 語句使系統管理員能夠撤銷權限和角色,這些權限和角色可以針對用戶帳戶和角色來撤銷。
  • MySQL的SQL語句 - 資料庫管理語句 - 資源組管理語句 - SET RESOURCE GROUP 語句
    SET RESOURCE GROUP 用於資源組管理。此語句將線程分配給資源組。它需要 RESOURCE_GROUP_ADMIN 或 RESOURCE_GROUP_USER 權限。group_name 標識要分配的資源組。thread_id 值表示要分配給組的線程。線程 ID 可以從 performance_schema 資料庫中的 threads 表中確定。
  • mysql常用sql語句總結
    獲取表結構:Desc 表名;(show databases;tables;資料庫和表)。此列不重複mysql> create table t11 (-> id int primary key not null default 0,-> name char(2) not null default ''-> );mysql> create table t12 (-> id int,-> name char(2
  • DBA必備技能,mysql權限管理(DCL語句)
    只會資料庫是否能拿到高工資?可以,這個職業很厲害就是傳說中的DBA,開發很多,DBA不多。今天要講的內容跟DBA有很大關係,想做DBA權限管理是很重要的,今天就講一下mysql中的權限管理。一、用戶管理;1、切換資料庫;如下圖所示,將界面切換至命令界面;輸入命令use mysql;這句代碼意思是切換資料庫,切換到mysql這個資料庫下面,因為用戶信息在mysql下的user表內存儲著。
  • 【資料庫】MySQL常見SQL語句
    FROM 『username』@』%』;命令並不能撤銷該用戶對testDB資料庫中user表的SELECT 操作。相反,如果授權使用的是GRANT SELECT ON . TO 『username』@』%』;則REVOKE SELECT ON testDB.user FROM 『username』@』%』;命令也不能撤銷該用戶對testDB資料庫中user表的Select 權限。
  • SQL查詢語句場景應用
    、更新和管理關係資料庫系統。 在MySQL資料庫SQL查詢語句實際應用之前需要了解四點:1、SELECT語句結構 2、SELECT語句執行順序 3、索引 4、視圖。/en/select.htmlSQL函數和運算符參考:https://dev.mysql.com/doc/refman/8.0/en/sql-function-reference.html 表達式評估中的類型轉換: https://dev.mysql.com/doc/refman/8.0/en/type-conversion.html  SELECT
  • php mysql SQL注入語句構造
    由於PHP和MYSQL本身得原因,PHP+MYSQL的注射要比asp困難,尤其是注射時語句的構造方面更是個難點,本文主要是借對Okphp BBS v1.3一些文件得簡單分析,來談談php+mysql注射語句構造方式,希望本文對你有點幫助。
  • SQL 資料庫語句
    database-name2、說明:刪除資料庫drop database dbname3、說明:備份sql server--- 創建 備份數據的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
  • MySQL語句中去除重複語句
    刪除資料庫中重複的記錄,只保留一條
  • 一道簡單的sql語句題
    結果才發現,數據分析崗位大多注重的是資料庫的能力,比如sql語句的考察,hive的考察,以及一些運營思維的考察,所以第一次面試就很悲劇啦,不過題目還是很有代表性的。其他的不寫了,這裡只分享一個關於sql的題目。1、問題引出現在有兩個數據表,一個數據表記錄司機的信息,比如司機id,司機姓名,司機註冊時間等等,一個數據表記錄一天的訂單情況,比如訂單ID,訂單司機id,訂單時間。
  • mysql修改語句UPDATE的使用
    前面幾篇文章我們介紹了資料庫的插入,查詢的介紹。基本常用的就是msyql的增刪改查,差不多就是添加數據,刪除數據,修改數據,查詢出想要的數據。今天介紹一下update的使用,這個關鍵詞就是修改資料庫語句。
  • 資料庫常用的sql語句匯總(2)
    資料庫相關查所有資料庫 show databases;創建資料庫 create database db1;查看資料庫show create database db1;創建資料庫指定字符集 create database db1 character set utf8/gbk刪除資料庫 drop database db1;使用資料庫 use db1;
  • 使用explain和show profile來分析SQL語句實現優化SQL語句
    SQL語句優化是建立在慢查詢分析的基礎上,通過慢查詢定位有問題的SQL語句,關於慢查詢的介紹及其分析工具,可以參考[mysql慢查詢及慢查詢日誌分析工具]一、通過explain查詢1 用法:explain sql2 作用:用於分析sql語句
  • MySQL-SQL語句執行流程
    分析器首先通過mysql關鍵字將語句解析,會生成一個內部解析樹,mysql解析器將對其解析,查看是否是有錯誤的關鍵字,關鍵字順序是佛正確;預處理器則是根據mysql的規則進行進一步的檢查,檢查mysql語句是否合法,如,庫表是否存在,欄位是否存在,欄位之間是否模稜兩可等等,預處理器也會驗證權限。
  • Mysql中一條SQL查詢語句是如何執行的?
    2.查詢流程解析select * from table1 where ID=10;這條語句相信大家再熟悉不過了,下面我們就看看這一條語句在mysql中是怎麼執行的。第一步:一條sql語句要經過連接器,客戶端要和mysql建立連接。
  • MySQL的Online DDL語句
    他們三者的區別如下:DDL:data definition language,數據定義語言,用來定義數據的語句。例如我們平時的create table,create index,create function等。DML:data manipulation language,數據修改語言,用來操作數據的語句。
  • 為什麼要避免使用「CREATE TABLE AS SELECT」語句
    SQL語句「create table <table_name> as select ...」用於創建普通表或臨時表,並物化select的結果。某些應用程式使用這種結構來創建表的副本。一條語句完成所有工作,因此您無需創建表結構或使用其他語句來複製結構。
  • 經典SQL語句大全
    database-name2、說明:刪除資料庫drop database dbname3、說明:備份sql server--- 創建 備份數據的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat