1. 程式人生 > >mysql用戶權限管理

mysql用戶權限管理

linux 數據庫管理


重置數據庫管理員本地密碼(知道原先密碼)

# mysqladmin -hlocalhost -uroot -p password

#ENTER 舊密碼

恢復數據庫登錄密碼

/etc/my.cnf

[mysqld]

skip_grant_tables #跳過授權表運行

#validate_password_length=6

#validate_password_policy=0

重啟服務

#mysql #正常方式連接數據庫

>update mysql.user set authentication_string=

password(“密碼”) where name=’root’ and

host=’localhost’;

>flush privileges; #刷新權限

/etc/mycnf 註釋掉skip_grant_tables

重啟服務

數據庫授權相關操作

查看當前登錄用戶

>select user();

查看主機名(默認localhost

>select @@hostname; #sql命令中調用變量用@@

當前登錄用戶已有的權限

>show grants;

查看授權用戶

> select user,host from mysql.user;

刪除授權用戶

>drop user 用戶名@"客戶端地址

";

查看授權用戶的權限

>show grants for 用戶名@"客戶端地址";

權限撤銷

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

通過對mysql下的表進行update操作撤銷權限,最後要flush privileges;刷新權限

管理員修改授權用戶登錄密碼

>set password for 用戶名@""=password("密碼");

授權用戶修改自己的密碼

>set password=password('密碼');

授權數據庫

>grant 權限列表 on 數據庫名.表名 to 用戶@客戶端地址

identified by ‘密碼’ with grant option(是否有授權權限)

權限列表

all 所有

select 查看

insert 插入

update 修改

delete 刪除

select,update(字段1..字段N)

#可百度查詢更多的權限介紹

客戶端地址

% 所有主機

192.168.4.% 一個網段

192.168.4.1 一個ip

總結

1.授權用戶信息在mysql的不同表下,以下是必須了解的表:

user表:授權用戶的訪問權限

db表:授權用戶對已有數據庫的訪問權限

tables_priv:授權用戶對表的訪問權限

columns_priv:授權用戶對字段的訪問權限

2.授權用戶授權除了有with grant option,還要對mysql.user表有insert權限

3.數據庫管理員擁有所有權

4.授權用戶授權時權限要小於等於自身的權限

5.權限撤銷前提是之前有對目標進行定義,不然會報錯no such defined


mysql用戶權限管理