日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL 安全性知识要点

發布時間:2023/12/2 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL 安全性知识要点 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

添加、刪除用戶

1.添加用戶

可以使用CREAT USER語法添加一個或多個用戶,并設置相應的密碼。

語法格式:

CREAT USER user [IDENTIFIED BY ?[PASSWORD] ?'password']

    [,user [IDENTIFIED BY ?[PASSWORD] ?'password'] ] ...

其中,user的格式為:

‘user_name’@ 'host name'

注:user_name為用戶名,host_name為主機名,password為該用戶的密碼。

使用自選的IDENTIFIED BY 子句,可以為賬戶給定一個密碼。特別是要在純文本中指定密碼,需忽略PASSWORD關鍵詞。如果不想以明文發送密碼,而且知道PASSWORD()函數返回給密碼的混編制,則可以指定該混編值,則可以制定該混編值,但要加關鍵字PASSWORD。

CREAT USER用于創建新的MySQL賬戶。CREAT USER會在系統本身的mysql數據庫的user表中添加一個新記錄。要是用CREAT USER,必須擁有mysql數據庫的CREAT USER權限或INSERT權限。如果賬戶已經存在,則出現錯誤。

?例:添加兩個新的用戶,king的密碼為queen,cong的密碼為707013

create user

  'king' @ 'localhost' identified by 'queen',

  'cong' @??'localhost' identified by '707013';

完成后可以切換到mysql數據庫,從user表中查到剛剛添加的兩個用戶記錄:

use mysql

show tables;

select * from user

注:在用戶名后面聲明了關鍵字localhost。這個關鍵字指定用戶創建的使用MySQL的連接所來自的主機。如果一個用戶名和主機名中包含特殊符號如“_”,或通配符如“%”,則需要用單引號將其括起。“%”表示一組主機。

如果兩個用戶具有相同的用戶名但主機不同,MySQL將其視為不同的用戶,允許為這兩個用戶分配不同的權限集合。

如果沒輸入密碼,那么MySQL允許相關的用戶不使用密碼登錄。但是從安全的角度并不推薦這種做法。

2.刪除用戶

?語法格式:

DROP USER ?user [, user_name]......

DROP USER ?語句用于刪除一個或多個MySQL賬戶,并取消其權限。要使用DROP USER ,必須擁有mysql數據庫的全局CREATE USER權限或DELETE權限。

例:刪除用戶 palo

drop user Palo@localhost;

刪除后可以用上面介紹的方法查看一下效果。如果被刪的用戶已經創建了表,索引或其他數據庫對象,它們將繼續保留,因為MySQL并沒有記錄是由誰創建了這些對象。

修改用戶名、密碼

1.修改用戶名

可以使用RENAME USER語句來修改一個已經存在的SQL用戶的名字。

語法格式:

RENANE USER old_user TO new_user,

       [, old_user TO new_user]...

注:old_user為已經存在過的SQL用戶,new_user為新的SQL用戶。

RENAME USER語句用于對原有MySQL賬戶進行重新命名。要使用RENAME USER,必須擁有全局CREATE USER權限或mysql數據庫UPDATE權限。如果舊賬戶不存在或者新賬戶已經存在,則會出現錯誤。

例:將用戶king的名字修改為ken

rename user

  ‘king’ @ ‘loacalhost’ to 'ken' @ ‘loacalhost’;

完成后可以用上面的方法查看一下是否修改成功。

2.修改密碼

要修改某個用戶的登錄密碼,可以使用SET PASSWORD語句。

語法格式:

SET PASSWORD ?[FOR user]=PASSWORD ('newpassword')

注:如果不加FOR user,表示修改當前用戶的密碼。加了FOR user則是修改當前主機上的特定用戶的密碼,user為用戶名,它的值必須以'user_name' @'host_name'的格式給定。

例:將用戶ken的密碼改為qen

set password for ‘ken’ @ ‘localhost’ =password(‘qen’);

權限控制

1.授予權限

新的SQL用戶不允許訪問其他SQL用戶的表,也不能立即創建自己的表,它必須被授權。可以被授予的權限有以下幾組。

(1)列權限:和表中的一個具體列相關。

(2)表權限:和一個具體表中的數據有關。

(3)數據庫權限:和一個具體的數據庫中的所有表相關。

(4)用戶權限:和MySQL所有的數據庫相關。

給某用戶授予權限可以使用GRANT語句。使用SHOW GRANTS語句可以查看當前賬戶擁有什么權限。

GRANT 語法格式:

GRANT priv_type ?[(column_list)] ?[,?priv_type ?[(column_list)] ]...

  ON [obect_type] {tbl_name | ?* ?| ? * . * ?| ?db_name.*}

  TO user [IDENTIFIED BY [PASSWORD] ?'password' ]

     [,user [IDENTIFIED BY [PASSWORD] ?'password' ]? ]...

  [WITH with_option [with_option] ...]

其中,object_type:

TABLE

| ?FUNCTION

| ?PROCEDURE

with_option:

GRANT ?OPTION

| ? MAX_QUERIES_PRE_HOUR ?count

| ? MAX_UPDATES_PRE_HOUR ?count

| ? MAX_CONNECTIONS_PRE_HOUR ?count

| ? MAX_USER_CONNECTIONS ?count

注:?priv_type為權限的名稱,如 SELECT,UPDATE等,給不同的對象授予權限?priv_type的值也不同。TO子句用來設定用戶的密碼。ON字關鍵字后面給出的是要授予權限的數據庫或表名。

SELECT:給予用戶使用SELECT語句訪問特定的表的權力。用戶也可以在一個視圖公式中包含表。然而,用戶必須對視圖公式中的每個表或視圖都有SELECT權限。

INSERT:給予用戶使用INSERT語句向一個特定表中添加行的權力。

DELETE:給予用戶使用DELETE語句向一個特定表中刪除行的權力。

UPDATE:給予用戶使用UPDATE語句修改特定表中值的權力。

REFERENCES:給予用戶使用創建一個外鍵來參照特定的表的權力。

CREATE:給予用戶使用特定名字創建一個表的權力。

ALTER:給予用戶使用ALTER TABLE語句修改表的權力。

INDEX:給予用戶使用在表上定義索引的權力。

DROP:給予用戶刪除表的權力。

ALL或ALL PRIVILEGES:表示所有權限名。

在授予表權限時,ON關鍵字后面跟上tb1_name ,tb1_name為表名或視圖名。

?

轉載于:https://www.cnblogs.com/215cwzx/p/8024627.html

總結

以上是生活随笔為你收集整理的MySQL 安全性知识要点的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。