14 7 1 2 MySQL建立使用者句法

2021-07-26 04:39:51 字數 4824 閱讀 3736

以下是mysql 5.7.6及以上版本create user句法

create user [if not exists]

user [auth_option] [, user [auth_option]] ...

[require ]

[with resource_option [resource_option] ...]

[password_option | lock_option] ...

user:

'詳情參見:

section 7.2.3, 「specifying account names」

'auth_option:

tls_option:

resource_option:

password_option:

lock_option:

以下是mysql 5.7.6以前版本create user句法

create

user

user [auth_option] [, user [auth_option]] ...

user:

'詳情參見:

section 7.2.3, 「specifying account names」)

'auth_option:

create user 語句將會建立乙個新的mysql賬戶。它允許賬戶認證屬性被建立。在mysql 5.7.6中,它也可能建立認證、ssl/tls、資源限制、賬戶密碼過期時間、賬戶鎖定和解鎖等屬性。

乙個賬戶在建立之初是沒有許可權的。

使用 create user 你必須有全域性的 create user 許可權,或者有對mysql資料庫進行 insert 的許可權。當設定了 read only 系統變數時, create user 還需要 super 許可權。

如果你嘗試建立乙個已經存在的賬戶將會觸發異常。

在 mysql 5.7.8 中 ,可以使用if not exists語句。這樣當嘗試建立已有使用者時,會丟擲警告而非異常。

每個賬戶, create user 語句會在mysql.user表中建立一條新紀錄。這條記錄會reflects(反射?還是要翻譯為反映?)在語句中指定的賬戶屬性。沒有被指定的賬戶屬性將會得到乙個預設值。

例1:使用預設的認證外掛程式來建立乙個賬戶並設定預設密碼。如果設定密碼已經過期,那麼使用者必須在首次連線mysql伺服器的時候重新設定密碼。

create

user

'jeffrey'@'localhost'

identified by

'new_password' password expire;

例2:使用 sha256_password 認證外掛程式建立乙個賬戶並設定預設密碼。設定每180天必須更新密碼。

create

user

'jeffrey'@'localhost'

identified with sha256_password by

'new_password'

password expire interval

180day;

要點

在某些情況下, create user 的使用可能會被記錄在伺服器日誌中,或者記錄在客戶端的歷史檔案中,比如:~/.mysql_history。這意味著使用者的明文密碼會被任何有權閱讀日誌的人看到。關於伺服器日誌產生的條件和如何控制它,參見section 7.1.2.3, 「passwords and logging」。客戶端的參見section 5.5.1.3, 「mysql logging」。

其他設定密碼和認證外掛程式的相關資訊,參見section 7.3.5, 「assigning account passwords」, and section 7.3.8, 「pluggable authentication」.

每個賬戶名的格式,參見section 7.2.3, 「specifying account names」。

例如:

create

user

'jeffrey'@'localhost' identified by

'mypass';

如果省略了賬戶名中的主機名(localhost)部分,會預設為%

上述語句,賬戶名稱('jeffrey'@'localhost')後面可以帶上乙個可選項 auth_option ,它指定了該賬戶將會如何被認證。這些values允許指定賬戶的認證外掛程式和資格證明(密碼)。每個 auth_option 值只會在使用者命名賬戶之前生效。

在使用者正規化中,語句可能會包含可選的設定:ssl/tls, 資源限制, 密碼過期, 鎖定屬性。所有這些可選項在當前語句中都是全域性的,可以應用到每個命名賬戶中。

例如:以下的語句將會建立兩個賬戶,每個都使用預設的認證外掛程式和預設密碼。每個賬戶若要被允許,在連線時必須使用乙個合法的x509證書,並且要高達60次查詢/每小時。在最初每個賬戶都是被鎖定的,所以它們只是有效的佔位符,在管理員解鎖它們之前都無法使用。

create

user

'jeffrey'@'localhost' identified by

'new_password1',

'jeanne'@'localhost' identified by

'new_password2'

require x509 with max_queries_per_hour 60

account lock;

如果省略可選項,它們將會使用如下的預設值:

乙個賬戶名之後可能會帶上可選項 authentication option 來指定賬戶認證外掛程式、密碼,或者兩個都有:

create user 語句允許這些 auth_option 句法:

注意

此句法已經過時,將會在下個mysql發行版中移除。

除非default_authentication_plugin系統變數被設定,否則預設的外掛程式就是mysql_native_password。更多詳情,參見section 7.5.1, 「authentication plugins」。

例1:指定了明文密碼,使用預設外掛程式:

create

user

'jeffrey'@'localhost'

identified by

'mypass';

例2:指定了認證外掛程式,以及明文密碼:

create

user

'jeffrey'@'localhost'

identified with mysql_native_password by

'mypass';

mysql可以檢查x509證書特性,除了基於使用者名稱和密碼的通用證書。詳情參見section 7.4, 「using secure connections」。

為mysql賬戶指定ssl/tsl-related option,要使用require語句,它可以用來指定乙個或者多個tls_option

create user 允許如下 tls_option :

乙個賬戶在訪問伺服器資源時,可能被加以限制,詳情參見:section 7.3.4, 「setting account resource limits」。寫語句時,使用 with 語句來指定乙個或者多個 resource_option 。

create user 允許下列的 resource_option :

例如:

create

user

'jeffrey'@'localhost'

with max_queries_per_hour 500 max_updates_per_hour 100;

如果限制的是次數,那麼最新的乙個例項將具有優先權。

create user 提供 password_option 選項來管理密碼過期,賬戶密碼過期失效或者建立密碼過期策略( policy )。 policy 選項不會使得密碼過期,它只是決定了伺服器何時自動過賬戶密碼(詳情參見section 7.3.6, 「password expiration policy」)。

密碼的生命週期由最近一次更新的日期時間進行評估。

create user 允許以下 password_option :

如果指定了多個過期策略,將使用最後一次指定的策略。

如果乙個賬戶的密碼手動過期或者由於超過了自動過期策略決定的密碼生命週期,乙個客戶端session操作將會進入限制模式。在限制模式中,session中執行操作會得到乙個異常的結果,知道建立乙個新的賬戶密碼,詳情參見:section 7.3.6, 「password expiration policy」。

mysql支援使用 account lock 和account unlock 來進行賬戶鎖定和解鎖,它們指定了賬戶的鎖狀態。詳情參見section 7.3.10, 「user account locking」

如果指定了多個 account-option ,最後一次指定的將會優先使用。

下面有空再翻譯了沒空就算了哈哈哈。

mysql 建立使用者指令碼 Mysql使用者建立指令碼

我試圖自動化mysql使用者建立過程。我想到建立乙個包含mysql使用者建立語句的臨時檔案,那麼我會這樣稱呼 mysql u root proot 這裡是我的臨時檔案的內容 drop database if exists mytestdatabase create database mytestda...

mysql 建立使用者

mysql grant all privileges on to root identified by with grant option query ok,0 rows affected 0.02 sec 表示是所有的外部機器,如果指定某一台機,就將 改為相應的機器名 mysql grant al...

MYSQL 建立使用者

一,建立使用者 命令 create user username host identified by password 說明 username 你將建立的使用者名稱,host 指定該使用者在哪個主機上可以登陸,如果是本地使用者可用localhost,如果想讓該使用者可以從任意遠端主機登陸,可以使用萬...