天天看點

SQL語言DCL語句

第一部分DCL

一.權限級别

  1. Global level 所有庫,所有表的權限。
  2. Database level 某個資料庫中的所有表的權限。
  3. Table level 庫中的某個表的權限
  4. Column level 表中的某個字段,的權限。

    二.mysql使用者管理

    1.建立使用者

mysql> create user [email protected]‘192.168.152.%’ identified by ‘[email protected]’;

Query OK, 0 rows affected (0.00 sec)

mysql>

``

注釋:建立 使用者 使用者名稱 分隔符 允許登入位址 身份認證 使用者密碼

2. 删除使用者 DROP USER’u1’@‘192.168.152.%’;

3. 修改使用者密碼

root修改自己密碼mysqladmin -uroot -p’舊密碼’ password ‘new_password’

SET PASSWORD=password(‘new_password’);

FLUSH PRIVILEGES; 重新整理權限

丢失root使用者密碼

修改mysql啟動設定

SQL語言DCL語句
SQL語言DCL語句

重新開機mysql,無密碼登入,修改密碼

SQL語言DCL語句
SQL語言DCL語句

修改mysql啟動設定,注釋掉跳過密碼,重新啟動

SQL語言DCL語句
SQL語言DCL語句

4. 登入MySQL

mysql -P 3306 -u root -p123 mysql -e ‘show tables’

注釋 -P伺服器端口 預設3306 -u 指定使用者名 -p 指定密碼 -e 接SQL語句

還有-h 指定主機名

三.mysql權限原理

文法格式

grant 權限清單 on 庫名.表名 to ‘使用者名’@‘用戶端主機’ [identified by ‘密碼’ with option參數];

權限清單 all: 所有權限(不包括授權權限)select,update 查詢更新,部分權限

資料庫.表名

*. * 所有庫下的所有表

庫名 . * 庫下的所有表

庫名 . 表名 庫下的表

例子:

grant SELECT (id), INSERT (name,age) ON mydb.mytbl to ‘user8’@‘localhost’ identified by ‘[email protected]’;

用戶端主機

![在這裡插入圖檔描述](https://img-blog.csdnimg.cn/20200827185552224.png#pic_center

with_option參數 授權選項

使用者被授予了某個權限,那麼預設情況下,該使用者是不能把這個權限授予給其他人的。

但是可以使用WITH GRANT OPTION這個子句來讓該使用者可以将權限再授予給其他人。

四.mysql權限示例

賦予權限

授權目标:授予 aa對bbs庫 所有的表,具有所有權限(不包含授權)

賦權示例

1.準備測試賬戶,root賬戶建立

2.root賬戶授權

SQL語言DCL語句

3.使用測試賬戶操作資料庫

進入

SQL語言DCL語句

建立庫bbs,然後再試試别的庫

SQL語言DCL語句

進入bbs庫,建立資料表和插入資料。授權驗證完畢

SQL語言DCL語句
SQL語言DCL語句

回收權限

1.檢視權限

檢視自己的權限 SHOW GRANTS\G

檢視别人的權限 SHOW GRANTS FOR [email protected]’%’\G

2.回收權限REVOKE

REVOKE 權限清單 ON 資料庫名 FROM 使用者名@‘用戶端主機’

REVOKE ALL PRIVILEGES ON bbs.* FROM [email protected]’%’; //回收所有權限

第二部分 日志

一. 日志分類

SQL語言DCL語句

1 錯誤日志 :啟動,停止,關閉失敗報錯。rpm安裝日志位置 /var/log/mysqld.log

2 通用查詢日志:所有的查詢都記下來。

3 二進制日志:實作備份,增量備份。隻記錄改變資料,除了select都記。

4 中繼日志:讀取主伺服器的binlog,在本地回放。保持一緻。

5 slow log:慢查詢日志,指導調優,定義某一個查詢語句,定義逾時時間,通過日志提供調優建議給開發人員。

6 DDL log: 定義語句的日志。

二、Error Log 錯誤日志

進入主配置檔案,觀察日志是否啟動。

vim /etc/my.cnf

log-error=/var/log/mysqld.log

該字段,标記是否啟動日志,以及日志位置。

如果出現錯誤mysql服務啟動不了,請來這個日志檔案看看。

例子:進入配置檔案,故意修改出現錯誤日志

SQL語言DCL語句
SQL語言DCL語句

進入配置檔案,重新改回原樣,重新啟動。

SQL語言DCL語句

三、Binary Log 二進制日志

1.預設沒有開啟,二進制日志

啟動二進制日志# vim /etc/my.cnf

SQL語言DCL語句

# systemctl restart mysqld 重新開機資料庫,日志檔案生效

2.測試

檢視二進制日志檔案目前狀态

SQL語言DCL語句
SQL語言DCL語句

# at 數字 記錄位置

進入資料庫,進行資料操作,創庫,創表,創資料

SQL語言DCL語句
SQL語言DCL語句

完成二進制日志啟動,查詢測試

SQL語言DCL語句
SQL語言DCL語句

四、Slow Query Log 慢查詢日志

預設慢查詢日志未開啟

1.開啟慢查詢日志功能

vim /etc/my.cnf

SQL語言DCL語句

#systemctl restart mysqld 重新開機服務

檢視慢查詢日志檔案

#ll /var/lib/mysql/slow

SQL語言DCL語句

模拟慢查詢,測試一個超長時間的查詢。

SQL語言DCL語句

驗證慢查詢日志

#tail /var/lib/mysql/localhost-slow.log

SQL語言DCL語句