mysql用戶權限管理
重置數據庫管理員本地密碼(知道原先密碼)
# 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用戶權限管理