mysql許可權 深入理解 MySQL 使用者和許可權

2021-10-25 13:57:36 字數 2491 閱讀 8593

一. 使用者

1 建立使用者(這裡的使用者不可使用,在分配許可權後可正常登陸)只建立使用者

create user username identified by 'password';建立使用者的同時授予許可權

grant all on databasename.* to username@'localhost' identified by 'password' with grant option;

2 刪除使用者

drop user username@localhost;

3 修改使用者密碼命令修改

set password for username@localhost = password('newpassword');更新 user 表

use mysql;

update user set password=password('newpassword') where user='username' and host='localhost';

flush privileges;mysqladmin

mysqladmin -uroot -pold_password password new_password

4 解決忘記root密碼關閉 mysql 服務

進入mysql/bin 目錄

輸入mysqld --skip-grant-tables- --skip-grant-tables :啟動mysql服務的時候跳過許可權表認證開啟新終端,進入mysql/bin 目錄

開啟mysql命令列

use mysql;

update user set password=password('newpassword') where user='username' and host='localhost';

flush privileges;

二. 許可權!!!注意:在每次執行完分配許可權命令後,需要重新整理許可權

flush privileges;

1 在多個層次上授予許可權伺服器

grant all privileges on *.* to 'username'@'localhost';資料庫

grant all privileges on databasename.* to 'username'@'localhost';資料表

grant all privileges on databasename.tablename to 'username'@'localhost';資料表的列

grant select(id, col1, col2) on databasename.tablename to 'username'@'localhost';儲存過程

grant execute on procedure databasename.tablename to 'username'@'localhost';函式

grant execute on function databasename.tablename to 'username'@'localhost';

2 對不同使用者角色的授權(許可權可自選,這裡只是參考)為普通使用者新增許可權

grant select, insert, update, delete on databasename.* to 'username'@'%';為開發者新增許可權

grant create, alter, drop, references on databasename.* to 'username'@'192.168.0.%';為普通 dba 新增許可權

grant all privileges on databasename.* to 'username'@'localhost';為高階 dba 新增許可權

grant all privileges on *.* to 'username'@'localhost';

3 檢視授權

show grants for username;

4 撤銷在所有資料庫上的許可權

revoke all privileges on *.* from 'username'@'localhost';

5 命令分析grant:執行命令詞,一般為動詞

*.*:前者表示資料庫名,後者表示資料表名

databasename.*:表示在databasename中的所有表

databasename.tablename:表示在databasename中的tablename表

'username'@'localhost':前者為使用者名稱,後者為接入的ip

'username'@'%':可以從任何地點接入

'username'@'192.168.1.%' :192.168.1 ip下的區域網都可接入

'username'@'%.website.com':可以從接入

'username'@'localhost': 只可以本機登入localhost 通過unixsocket連線,不會被解析為ip位址

127.0.0.1 通過tcp/ip協議連線,只能本機訪問

::1 ::1 支援ipv6,等同於ipv4的127.0.0.1

6 許可權列表

mysql 索引深入理解 深入理解MySql的索引

為什麼索引能提高查詢速度 先從 mysql的基本儲存結構說起 mysql的基本儲存結構是頁 記錄都存在頁裡邊 各個資料頁可以組成乙個雙向鍊錶每個資料頁中的記錄又可以組成乙個單向鍊錶 每個資料頁都會為儲存在它裡邊兒的記錄生成乙個頁目錄,在通過主鍵查詢某條記錄的時候可以在頁目錄中使用二分法快速定位到對應...

MySQL深入理解

儲存引擎 innodb表引擎 myisam表引擎 其他的表引擎 索引 索引對效能的影響 索引的使用場景 索引的型別 對比說明 mysql索引的建立原則 mysql索引的注意事項 查詢優化 查詢分析sql查詢慢的原因 優化查詢過程中的資料訪問 避免使用如下sql語句 是否在掃瞄額外的記錄?優化長難的查...

mysql深入理解二

過濾資料 本章講授如何使用select語句的where 子句指定的搜尋條件。資料庫表一般包含 大量的資料,很少需要檢索表中所有的行。通常只會根據特定操作或報告的需要 提取資料的子集。只檢索所需資料需要的指定搜尋條件 search criteria 搜尋條 件也稱為過濾條件 filter condit...