1. 程式人生 > >Mysql密碼管理及授權

Mysql密碼管理及授權

命令格式 一個 直接 客戶 for 執行 tex 客戶端 etc

目錄

1 管理root用戶密碼

2 用戶授權與權限撤銷

3 安裝圖形管理工具



1 管理root用戶密碼

1.1 修改密碼

方法1:用mysqladmin

該方式需要知道mysql的原密碼

命令格式:

mysqladmin -hlocalhost -uroot -p password “新密碼”

方法2:需要登錄到mysql

授權用戶修改自己的密碼:

mysql> set password=password(“新密碼”);

數據庫管理員重設其它用戶的密碼:

mysql> set password for 用戶名@’客戶端地址’=password(“新密碼”);

方法3: 用sql命令update直接編輯user表

mysql> use mysql; #系統自帶的數據庫

mysql> update user set authentication_string= password('新密碼') where user = 'root';

mysql> flush privileges;


1.2 密碼恢復及設置

修改配置文件/etc/my.cnf

[mysqld]

skip_grant_tables #跳過授權表

#validate_password_policy=0 #剛進入mysql設置的,刪除或者註釋

#validate_password_length=6 #刪除或者註釋

[root@ser51 ~]# systemctl restart mysqld

[root@ser51 ~]# mysql #不用密碼可以進入數據庫

mysql> select * from mysql.user\G; #密碼存放的表

mysql> update mysql.user

set authentication_string=password('234567')

-> where user="root" and host="localhost";

更新成功之後,重回配置文件,修改過來,註釋掉跳過授權表,重啟服務。


2 用戶授權與權限撤銷

2.1授權

格式:

mysql> grant 權限列表 on 庫名 to 用戶名@”客戶端地址” identified by “密碼” with grant option;

權限列表:all ; select, insert, update ; usage

usage:該權限只能用於數據庫登陸,不能執行任何操作;且usage權限不能被回收,使用REVOKE並不能刪除用戶。

庫名:*.* 代表所有;庫名.表名

客戶端地址:% 代表所有可以ping通服務器的主機

with grant option 該選項可不寫,給授權的客戶機也可以進行對數據庫授權

mysql> select @@hostname; #查看數據庫服務器

mysql> select user(); #查看當前登錄的用戶名

mysql> show grants; #查看權限

mysql> show processlist; #顯示當前運行的程序訪問用戶的信息

2.2 撤銷授權

(1)查看已有的授權用戶:select user,host from mysql.user;

(2)查看已有的授權用戶訪問權:show grants for 用戶名@”%”;

(3)撤銷用戶訪問權限:

格式:

revoke 權限列表 on 庫名.表名 from 用戶名@客戶端地址;

mysql> revoke grant option on *.* from root@'%';

mysql> revoke all on *.* from root@客戶端地址

當對一個用戶授權一個不存在的庫時,該用戶登錄後只能對授權的庫進行操作(如建只能授權的庫)。

(4)或者對表的用戶權限進行更改:

mysql> select *from mysql.user\G;

mysql> update mysql.db set Delete_priv=”Y” where user=”用戶名” and host=”客戶端地址”;

flush privileges; #更新數據庫

撤銷的只是用戶的權限並不是把用戶刪除.

撤銷權限後會權限會變為usage,用戶仍能登錄。

(5)此時可以刪除用戶:

兩種方法

第一種:delete from mysql.user where user=”” and host=””;

第二種:drop user 用戶名@“客戶端地址”;

flush privileges;

(6)數據庫自帶mysql庫中表的含義:

mysql授權庫 存儲的是授權信息,使用不同的表存儲不同的授權權限。

user 存儲授權用戶已有的授權用戶

db 存儲授權用戶對庫的訪問權限

tables_priv 存儲授權用戶對表的訪問權限

column_priv 存儲授權用戶對字段的訪問權限

3 安裝圖形管理工具

3.1 PhpMyAdmin

[root@ser51 ~]# yum -y install httpd php php-mysql

[root@ser51 ~]# mv phpMyAdmin-4.1.2-all-languages

/var/www/html/pma

[root@ser51 ~]# cd /var/www/html/pma

[root@ser51 ~]# cp config.sample.inc.php config.inc.php

[root@ser51 ~]# vim config.inc.php

17行:$cfg[‘blowfish_secret’]=’test’; #在單引號裏隨意添加字符,如果不修改這項,會報錯

31行:$cfg['Servers'][$i]['host'] = '數據庫IP';

測試:從瀏覽器訪問

firefox http://192.168.0.4/pma


Mysql密碼管理及授權