Mysql 數據庫的權限問題


之前一直對Mysql數據庫的權限沒太理解

root用戶具有最高的權限,也就是超級用戶,root用戶可以看到數據庫中的所有的內容,而其它用戶只能對經過root用戶授權過的數據庫進行操作,如果想在其它用戶中創建新的數據庫       而對root用戶不可見,是不行的,而將其它用戶的權限設置成:

      grant all on *.* to 'my_user'@'localhost';

      這時,其它用戶的權限相當於root 用戶,沒有實際意義。

      revoke all on *.* from 'my_user'@'localhost';//回收用戶的權限

      grant all on db.* to 'my_user'@'localhost';//只授予對db數據庫的操作權限

      grant select(stu_no) on db.stu to 'my_user'@'localhost';//只授予對db數據庫的stu表的stu_no列的select權限   列級授權

      select * from mysql.user

      

     查看用戶的權限,注:此時查看到的是全局權限,也就是對所有數據庫的操作權限而:

       grant all on *.* to 'my_user'@'localhost';//授予的是數據庫權限,全局權限>數據庫權限,當全局權限不滿足條件時再查看數據庫權限

     修改全局權限:

     update mysql.user set Create_priv='Y' where user='my_user';此時會報錯,因為mysql安全模式下非主鍵無法執行update和delete操作

     這時查看mysql.user 表:

     desc mysql.user

    

    這張表中host和user是組合主鍵,所以有兩種修改方法:

    ①set sql_safe_updates=0;

    ②update mysql.user set Create_priv='Y where user='my_user' and host='localhost';

查看授予給指定用戶的權限

show grants for 'my_user'@'localhost'

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM