mysql 用戶管理和權限設置

1、user表中host列的值的意義

% 匹配所有主機

localhost localhost不會被解析成IP地址,直接通過UNIXsocket連接

127.0.0.1 會通過TCP/IP協議連接,並且只能在本機訪問;

::1 ::1就是兼容支持ipv6的,表示同ipv4的127.0.0.1

2、用戶管理

查看

select  `host`, `user` , `password`   from   `mysql`. `user` ;

創建

1.直接創建並賦權限 (推薦)
grant   all    on   *.*  to   'admin'@'%'    identified  by   'password'   ;
2.創建 identified by 會將純文本密碼加密作爲散列值存儲
create   user    zx_root   IDENTIFIED  by   'password';
3.直接向數據表添加
INSERT INTO `mysql`.`user` VALUES ('%', 'mysqltest', password("hello123"), 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y','Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', '0', '0', '0', '0', 'mysql_native_password', '', 'N');

修改

rename   `mysql`.`user`    'feng'   to     'newuser';

//mysql 5之後可以使用,之前需要使用update 更新user表

更改密碼

set   password   for   zx_root = password ( 'xxxxxx' );

update    `mysql`. `user`    set    password = password ( 'xxxx' )   where   `user` = 'otheruser';

刪除

DELETE   FROM   `mysql`. `user`   WHERE   `User`   =  '' ;

DROP   USER   'user'   [,'user' ...] ;


#或則如果不希望用戶在系統中存在,可以按如下方式撤銷
revoke all privileges,grant from user

3、權限管理

查看用戶權限

show grants  for   zx_root;

賦予用戶權限

grant   權限1,權限2,…權限n  on   數據庫名稱.表名稱  to   '用戶名' @ '用戶地址' identified  by   ‘連接口令’;
  1. 權限1,權限2,…權限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14個權限。
  2. 權限1,權限2,…權限n被all privileges或則all代替,表示賦予用戶全部權限。
  3. 當數據庫名稱.表名*.*代替,表示賦予用戶操作服務器上的所有數據庫的所有的表。
  4. 用戶地址可以是localhost,也可以是IP地址、機器名字、域名。也可以用%表示允許從任何地址連接。
  5. ‘連接口令’未登錄狀態不能爲空,否則創建失敗。已登錄可以爲空。
權限 說明
all privileges或則all 表示賦予用戶全部權限
select 查詢
insert 增加
update 修改
delete 刪除
create 創建數據庫或則表
drop 刪除數據庫或則表
index 可以試用create index 和drop index
alter 修改表結構
grant 權限控制
references 外鍵(Foreign Key)
reload 必須擁有reload權限,才能執行flush [tables、logs、privileges]
shutdown 試用mysqladmin shutdown來關閉mysql
process 通過這個權限,用戶可以執行SHOW PROCESSLIST和KILL命令
file 使用select into outfile 和load data infile
但是不要把file,process,super權限授予管理員以外的帳號,
這樣存在嚴重的安全隱患

4、 回收權限

revoke select  on dmc_db.*  from zx_root;

//如果權限不存在會報錯

上面的命令也可使用多個權限同時賦予和回收,權限之間使用逗號分隔

最後:刷新權限

重新刷權限表到內存了

FLUSH  PRIVILEGES ;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章