在不同的專案中給不同的角色(開發者)不同的操作許可權,為了保證資料庫資料的安全
通常,乙個使用者的密碼不會長期不變,所以需要經常性的變更資料庫使用者密碼來確保使用者本身安全
mysql
需要客戶端進行連線認證才能進行伺服器操作:需要使用者資訊,mysql
中所有的使用者資訊都是儲存在mysql
資料庫下的user
表中
預設的,在安裝mysql
的時候,如果不選擇匿名使用者,那麼意味著所有的使用者只有乙個:root
在mysql
中,對用的使用者管理中,是由對應的host
和user
共同組成主鍵來區分使用者。
user
:代表使用者的使用者名稱
理論上講可以採用兩種方式建立使用者
直接使用root
使用者在mysql.user
表中插入記錄(不推薦)
專門建立使用者的sql
指令
基本語法:create user 使用者 identified by 密碼;
如果不限制主機位址則用%
代替
注意:mysql
中user
是帶著host
本身的(具有唯一性)
基本語法:drop user 使用者名稱@host;
drop user user1@'%'
mysql
中提供了多種修改密碼的方式:基本上都必須使用對應提供的乙個系統函式:password()
,需要靠該函式對密碼進行加密處理。
使用專門修改密碼的指令
基本語法:alter user 使用者 identified by '新的密碼';
alter user 'user1'@'%' identified by '654321'
在mysql
中將許可權管理分為三類
資料許可權:增刪改查(select``update``insert``delete
)
結構許可權:結構操作(create``drop
)
管理許可權:許可權管理(create user``grant``revoke
)這個許可權通常只給管理員
將許可權分配給指定的使用者。
基本語法:grant 許可權列表 on 資料庫.表名 to 使用者
許可權列表:用逗號分隔,但是可以用all privileges
代表所有許可權
資料庫.表名:可以是單錶(資料庫.表名
),可以是具體某個資料庫(資料庫.*
),也可以是整庫(*.*
)
grant select on mydb.my_student to 'user1'@'%';
許可權**:將許可權從使用者手中收回
基本語法:revoke 許可權列表 on 資料庫.表名 from 使用者
revoke all privileges on mydb.my_student from 'user1'@'%';
將當前對使用者的許可權操作,進行乙個重新整理,將操作的具體內容同步到對應的表中。
基本語法:flush privileges
如果忘記了root
使用者密碼,就需要去找回或者重制密碼
停止服務(也可在preference中關閉)
重啟服務sudo mysqld_safe --skip-grant-tables
// 啟動伺服器但是跳過許可權
此時mysql
伺服器端已經啟動,不過當前的伺服器沒有許可權概念:非常危險,任何客戶端,不需要任何使用者資訊都可以直接登入,而且是root
許可權。
修改root
使用者的密碼:指定使用者名稱@host
關閉此時的伺服器,並重啟服務
sudo /usr/local/mysql/support-files/mysql.server stop
sudo /usr/local/mysql/support-files/mysql.server start
使用者許可權管理
1.2 使用者許可權管理 可以執行以下命令完成解除安裝 chmod 777 r sh 1.3.0 cd sh 1.3.0 uninstall.sh linux 系統中三種基本許可權 使用者屬主 使用者屬組及其它人許可權 rw r r 1 root root 762 11 11 20 34 a.out...
Mysql MariaDb使用者 使用者許可權管理
1 使用 root 管理員登陸 mysql mysql uroot p123456 2 建立新使用者 create user user1 identified by 07fa533360d9 所有情況都能訪問 localhost 本機才能訪問 111.222.33.44 指定 ip 才能訪問 注 修...
使用者管理與許可權管理
1 新增使用者 首先用adduser命令新增乙個普通使用者,命令如下 adduser tommy 新增乙個名為tommy的使用者 passwd tommy 修改密碼 changing password for user tommy.new unix password 在這裡輸入新密碼 retype ...