mysql 建立使用者, 分配許可權, 刪除使用者

2022-01-12 15:12:34 字數 2097 閱讀 6722

通過create user 命令來建立使用者, 有兩種方式:(只介紹通過 create user 命令, 直接往user表中插入資料的方式,這裡就不說了)

建立使用者的同時, 指定使用者可登入的主機和密碼

create user 'test_user'@'%' identified by "123"; 

create user 'test_user'@'localhost' identified by "123";

create user 'test_user'@'127.0.0.1' identified by "123";

grant all privileges on test_db.* to 'test_user'@'%';

grant select,update,delete,insert,drop on test_db.* to 'test_user'@'%';

grant all privileges on test_db.* to 'test_user'@'%' identified by '1112';

grant all privileges on test_db.* to 'test_user'@'%' with grant option;

首先解釋一下建立使用者的命令引數:

分配許可權的命令引數:

上面前三條命令只能同時使用一條, 因為create user 不能建立同名的使用者

那麼問題就來了, 假設通過第一條命令建立了使用者, 那麼這個使用者就只能在遠端主機上登入, 而不能在本地登入, 如果在本地登入, 會報這個錯誤:error 1045 (28000): access denied for user 'card_test1'@'localhost' (using password: yes)

出現這個錯誤有很多種情況, 據我的了解, 可能是:

使用者沒有在本地登入的許可權, 也就是'card_test1'@'localhost'這個使用者不存在, 因為只存在'card_test1'@'%'這個使用者

密碼不對

為了解決這個問題, 可以通過第二種方式, 也就是create user 的時候, 不分配登入主機這些引數

只建立使用者, 不分配主機

1. create user test_user;

2. create user test_user identified by "123";

3. grant all privileges on test_db.* to 'test_user'@'%' identified by "1234";

4. grant all privileges on test_db.* to 'test_user'@'localhost'identified by "1235";

上面的命令, 1,2 執行一條, 單純的建立使用者, 或者同時分配密碼;

然後, 3,4 兩條都可以執行, 這樣就能讓test_user 這個使用者, 既能在本地登入, 又能在遠端登入, 如果 grant的時候, 設定不同的密碼, 還能使在不同主機登入的同乙個使用者, 使用不同的密碼

取消使用者許可權

使用revoke語句

revoke all on test_db.* from 'test_user'@'localhost';

這個命令就取消了 test_user 這個使用者, 在本地登入時的全部許可權

刪除使用者

drop user 'test_user'@'%';

drop user 'test_user'@'localhost';

修改指定使用者的密碼
update mysql.user set password=password('new_passwd') where user='test_user' and host='%';

建立使用者給使用者建立許可權或者修改許可權, 都可以通過直接操作 mysql.user表; 注意直接操作表的話, 需要用flush privileges;命令 重新整理許可權

mysql 建立使用者 分配許可權

mysql建立使用者的方法分成三種 insert user表的方法 create user的方法 grant的方法。1 通過create user命令進行建立使用者 指令碼 create user username host identified by password 其中密碼是可選項 例子 cr...

mysql建立使用者並分配許可權

mysql u root p 提示輸入密碼,輸入密碼後回車,進入mysql命令列 create user test identified by 123456 test為使用者名稱,123456為密碼,表示任何電腦都可以訪問,如果只為本地使用者建立,則 改為localhost grant select...

Mysql命令建立使用者分配許可權

1 建立乙個資料庫abc mysql create database abc 2 選擇你所建立的資料庫 mysql use abc database changed 3 建立乙個資料庫表 首先看現在你的資料庫中存在什麼表 mysql show tables empty set 0.00 sec my...