MySql使用者以及許可權的管理。

2022-05-22 14:15:12 字數 3081 閱讀 3123

1.建立使用者

create

user 「username「@「%」identified by 「password」

這樣乙個使用者就新建完成了。

create user ------建立使用者後面跟上想要建立的使用者名稱。

@% ------%表示主機,如果是%表示任何主機都可,但是想限制ip那麼就寫ip。例如:我想讓只想1.1.1.1這個能夠訪問資料庫那麼就這樣

create

user 「username「@「1.1.1.1」 identified by 「password」;

但是有個問題本萌新想問一下:就算我寫的是%號,但是我用本機當做伺服器的話,我新建的普通使用者,還是無法登陸,除非我在user表中insert一條localhost進去才行,不知道這個是為什麼啊?

2.給使用者新增許可權

我們新建乙個普通使用者後,雖然有這個賬戶了,但是沒有許可權了訪問不了資料庫。所以我們需要給他分配許可權。

grant

allprivileges

on*.*to'

username

'@'%

' identified by

'賬戶的密碼』;

all privileges:表示將所有許可權授予給使用者。也可指定具體的許可權,如:select、create、drop等。

on:表示這些許可權對哪些資料庫和表生效,格式:資料庫名.表名,這裡寫「*」表示所有資料庫,所有表。如果我要指定將許可權應用到test庫的user表中,可以這麼寫:test.user

to:將許可權授予哪個使用者。格式:」使用者名稱」@」登入ip或網域名稱」。%表示沒有限制,在任何主機都可以登入。比如:」yangxin」@」192.168.0.%」,表示yangxin這個使用者只能在192.168.0ip段登入

identified by:指定使用者的登入密碼

mysql> flush privileges;

3.檢視使用者許可權

查詢某使用者有哪些許可權。注意後面的主機的名的不同,它所具備的許可權也不是不同的。

show grants for "username"@"%";

4.**/刪除使用者的某些許可權

revoke

create

on*.*

from

'username@localhost

';

那麼這條命令下去,該使用者就不能建立任何資料庫和表了。記得用第2項中的flush命令重新整理一下許可權。

5.刪除使用者

drop

user

'username

'@'%

';

6.修改使用者密碼三種方法

6.1.

更新mysql.user表

# mysql5.7之前

mysql>

usemysql;

mysql>

update

user

set password=password('

123456

') where

user='

root';

# mysql5.7之後

mysql>

usemysql;

mysql>

update

user

set authentication_string=password('

123456

') where

user='

root';

mysql> flush privileges;

6.2.set password for 『使用者名稱'@'登入位址'=password(『密碼')

mysql>

set password for jeffrey@"%" = password('

biscuit

');

6.3.mysqladmin -u 使用者名稱 -p舊的密碼 password 新密碼

$ mysqladmin -u root -p123456 password 1234abcd

注意我的提示符已經轉變成shell了,注意-p後面是沒有空格的。

7.如果忘記了root密碼,如何修改root的密碼呢?且看下面

由於進行特殊模式進行登入,當前的乙個shell會陷入黑洞中,所以建議多開乙個ssh連線,用來做2、3步操作,

1.在作業系統中停止mysql服務程序

rhel7以下:service mysqld stop

rhel

7:systemctl stop mysql.service

2.使用下面命令跳過許可權驗證,也就不需要密碼了。

mysqld_safe --skip-grant-tables

3.修改root密碼

mysql> use mysql

database changed

mysql> update user set password=password("qwe123") where user='root';

query ok, 4 rows affected (0.01 sec)

rows matched: 4 changed: 4 warnings: 0

mysql> flush privileges;

query ok, 0 rows affected (0.00 sec)

最後乾掉當前特殊模式下的mysql程序 重啟一下服務,那麼grant驗證就又回來了。

如果錯誤懇請各位指出,謝謝!

MySQL使用者許可權管理

網際網路文件整理 mysql的使用者管理,指的是哪個使用者可以連線伺服器,從 連線,連線後能做什麼.mysql中grant語句建立mysql使用者並指定其許可權,而revoke語句刪除許可權。兩條語句實現了mysql資料庫的使用者管理,並提供與直接操作這些表的內容不同的另一種方法。create和re...

mysql 使用者許可權管理

mysql 中顯示所有使用者 select distinct concat user user,host,as query from mysql.user 檢視乙個使用者的許可權 show grants for company 為使用者授權 grant select on b2b search.to...

MySQL使用者許可權管理

使用者許可權管理主要有以下作用 1.可以限制使用者訪問哪些庫 哪些表 2.可以限制使用者對哪些表執行select create delete delete alter等操作 3.可以限制使用者登入的ip或網域名稱 4.可以限制使用者自己的許可權是否可以授權給別的使用者 mysql grant all...