mysql 賬戶管理 MySQL賬戶管理

2021-10-17 22:57:13 字數 4607 閱讀 9939

登陸/退出mysql伺服器

登陸mysql伺服器時,可以使用mysql命令並在後面指定登陸主機以及使用者名稱和密碼。mysql命令的常用引數如下:

-h主機名,該引數指定主機名或ip,如果不指定,預設是localhost。

-u使用者名稱,該引數指定使用者名稱。

-p密碼,該引數指定登陸密碼。如果該引數後面有欄位,則該字段將作為密碼直接去登陸。如果後面沒有內容,則登陸的時候會提示輸入密碼。注意:該引數後面的字串和-p之間不能有空格。

-p埠號,該引數後面接mysql伺服器的埠號(預設3306)。

資料庫名,在mysql命令最後指定資料庫名。

-e執行sql語句。如果指定了該引數,將在登陸後執行-e後面的命令或sql語句並退出。

用root賬號登陸到本地mysql伺服器上的mydb資料庫:

mysql -h localhost -u root -p mydb

新建普通使用者

1 使用create user語句建立新使用者

基本語法:

create user user_specification [, user_specification] ...

user_specification: user@host [ identified by [password] 'password' | identified with auth_plugin [as 'auth_string'] ]

user表示建立的使用者名稱;host表示允許使用者登陸的主機名稱; identified by用來設定密碼;[password]表示使用雜湊值設定密碼,是可選的;『password』表示普通明文密碼;identified with為使用者指定乙個身份驗證外掛程式;auth_plugin是外掛程式的名稱,外掛程式的名稱可以是乙個帶單引號的字串或者帶引號的字串;auth_string是可選的字串引數,該引數將傳遞給auth_plugin。

例子:create user 'kevin'@'localhost' identified by 'mypassword';

獲取密碼的雜湊值:

select password('mypassword')

2 使用grant語句建立新使用者

基本語法格式:

grant privileges on db.table to user@host [identified by 'password'] [, user [identified by 'password'] ] [with grant option];

privileges表示賦予使用者的許可權型別;db.table表示使用者的許可權所作用的資料庫中的表。

建立乙個使用者並且給使用者賦予對所有資料庫表的select和update許可權:

grant select, update on *.* to 'testuser' @'localhost' identified by 'userpassword';

3 直接操作mysql使用者表

基本語法格式:

insert into mysql.user(host, user, password, [privilegelist]) values ('host', 'username', password('password'), privilegevaluelist);

以上3種新增使用者的方法推薦使用第2種

刪除普通使用者

1 使用drop user語句刪除使用者

基本語法(可刪除乙個或多個):

drop user user [, user]

2 使用delete語句刪除使用者

delete from mysql.user where host='hostname' and user='username'

修改root使用者密碼

1 使用mysqladmin命令在命令列指定新密碼

基本語法格式:

mysqladmin -u username -h localhost -p password "newpassword"

2 修改mysql資料庫的user表

update mysql.user set password=password("newpassword") where user="root" and host="localhost"; flush privileges;

3 使用set語句修改root使用者的密碼

set password=password("newpassword")

該語句修改自身密碼,password()函式是必須的。語句生效需要重啟mysql或者使用flush privileges;語句重新整理許可權。

root使用者修改普通使用者密碼

1 使用set語句修改普通使用者的密碼

語法格式:

set password for 'user'@'host' = password('newpassword');

2 使用update語句修改普通使用者的密碼

語法格式:

update mysql.user set password=password("newpassword") where user="username" and host="hostname";

flush privileges;

3 使用grant語句修改普通使用者密碼

語法格式:

grant usage on *.* to 'someuser'@'%' identified by 'somepassword'

普通使用者修改密碼

普通使用者登陸後,用下面的語法格式修改自己的密碼:

set password = password ("newpassword")

root使用者密碼丟失的解決辦法

操作步驟如下:

1 使用--skip-grant-tables選項啟動mysql服務

windows:

mysqld --skip-grant-tables

mysqld-nt --skip-grant-tables

linux:

mysqld_safe --skip-grant-tables user=mysql

/etc/init.d/mysql start-mysqld --skip-grant-tables

授權授權的許可權可以分為多個層級:

1 全域性層級

許可權儲存在mysql.user中。

grant [all | privileges] on *.* to db_user@host

2 資料庫層級

許可權儲存在mysql.db和mysql.host表中。

grant [all | privileges] on db_name to db_user@host

3 表層級

許可權儲存在mysql.tables_priv表中。

grant [all | privileges] on db_name.tbl_name to db_user@host

4 列層級

許可權儲存在mysql.columns_priv表中。

grant [all | privileges](col_name1, col_name2,...) on db_name.tbl_name to db_user@host

grant select(id, name) on school.student to admin1@localhost;

5 子程式層級

create routine、alter routine、execute和grant許可權適用於已儲存的子程式。這些許可權可以被授予為全域性層級和資料庫層級。而且,除了create routine外,這些許可權可以被授予子程式層級,並儲存在mysql.procs_priv表中。grant的語法如下:

grant priv_type [(columns)] [, priv_type [(columns)] ... on [object_type] table1, table2, ..., tablen to user [identified by [password] 'password' ] [, user [identified by [password] 'password'] ] ... [with grant option]

grant option取值:

| max_queries_per_hour count | max_updates_per_hour count | max_connections_per_hour count | max_user_connections count

priv_type引數表示許可權型別;columns引數表示權作用與哪些列上,不指定該引數,表示作用於整個表;table1, table2,...,tablen表示授予許可權的列所在的表;object_type指定授權作用的物件型別,包括table(表)、function(函式)和procedure(儲存過程)。

收回許可權

revoke基本語法格式:

revoke priv_type [(columns)] [, priv_type [(columns)]] ... on table1, table2, ..., tablen from 'user'@'host' [, 'user'@'host' ...]

取消使用者testuser的更新許可權:

revoke update on *.* from 'testuser'@'localhost';

檢視許可權

基本語法格式:

show grants for 'user'@'host'

mysql 賬戶 mysql 賬戶管理

mysql增加新使用者賬戶 可以用兩種方式建立mysql賬戶 1.使用grant語句 2.直接操作mysql授權表 最好的方法是使用grant語句,因為這樣更精確,錯誤少。建立超級 使用者 mysql grant all privileges on to monty localhost identi...

MYSQL 賬戶管理

方法 1 mysqladmin u user h host password newpass 方法2 set password for user host password newpass 方法3 set password password newpass 這方方法是更改當前登入賬戶密碼 方法4 直...

mysql賬戶管理

mysql中新增使用者,新建資料庫,使用者授權,刪除使用者,修改密碼 注意每行後邊都跟個 表示乙個命令語句結束 1.新建使用者 登入mysql mysql u root p 密碼 建立使用者 mysql insert into mysql.user host,user,password values...