久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

mysql安全、訪問控制和權限怎么配置

162次閱讀
沒有評論

共計 7884 個字符,預計需要花費 20 分鐘才能閱讀完成。

這篇文章主要介紹“mysql 安全、訪問控制和權限怎么配置”的相關知識,丸趣 TV 小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“mysql 安全、訪問控制和權限怎么配置”文章能幫助大家解決問題。

創建 mysql 數據庫后系統會自動創建 test 庫和 mysql 庫
test 中有測試實驗數據
mysql 庫相當于 oracle 的系統表空間,記錄庫相關的內容;

當前明月三千里版本為 5.0.18
mysql select version();
+———–+
| version() |
+———–+
| 5.0.18-nt |
+———–+
1 row in set (0.00 sec)

版本 5.0.18 下系統表包括如下表格
mysql show tables from mysql;
+—————————+
| Tables_in_mysql  |
+—————————+
| columns_priv  |
| db  |
| func  |
| help_category  |
| help_keyword  |
| help_relation  |
| help_topic  |
| host  |
| proc  |
| procs_priv  |
| tables_priv  |
| time_zone  |
| time_zone_leap_second  |
| time_zone_name  |
| time_zone_transition  |
| time_zone_transition_type |
| user  |
+—————————+
17 rows in set (0.00 sec)

——–

user 表

| user  |CREATE TABLE `user` (
  `Host` char(60) collate utf8_bin NOT NULL default ,
  `User` char(16) collate utf8_bin NOT NULL default ,
  `Password` char(41) character set latin1 collate latin1_bin NOT NULL default ,
  `Select_priv` enum(N , Y) character set utf8 NOT NULL default N ,
  `Insert_priv` enum(N , Y) character set utf8 NOT NULL default N ,
  `Update_priv` enum(N , Y) character set utf8 NOT NULL default N ,
  `Delete_priv` enum(N , Y) character set utf8 NOT NULL default N ,
  `Create_priv` enum(N , Y) character set utf8 NOT NULL default N ,
  `Drop_priv` enum(N , Y) character set utf8 NOT NULL default N ,
  `Reload_priv` enum(N , Y) character set utf8 NOT NULL default N ,
  `Shutdown_priv` enum(N , Y) character set utf8 NOT NULL default N ,
  `Process_priv` enum(N , Y) character set utf8 NOT NULL default N ,
  `File_priv` enum(N , Y) character set utf8 NOT NULL default N ,
  `Grant_priv` enum(N , Y) character set utf8 NOT NULL default N ,
  `References_priv` enum(N , Y) character set utf8 NOT NULL default N ,
  `Index_priv` enum(N , Y) character set utf8 NOT NULL default N ,
  `Alter_priv` enum(N , Y) character set utf8 NOT NULL default N ,
  `Show_db_priv` enum(N , Y) character set utf8 NOT NULL default N ,
  `Super_priv` enum(N , Y) character set utf8 NOT NULL default N ,
  `Create_tmp_table_priv` enum(N , Y) character set utf8 NOT NULL default N ,
  `Lock_tables_priv` enum(N , Y) character set utf8 NOT NULL default N ,
  `Execute_priv` enum(N , Y) character set utf8 NOT NULL default N ,
  `Repl_slave_priv` enum(N , Y) character set utf8 NOT NULL default N ,
  `Repl_client_priv` enum(N , Y) character set utf8 NOT NULL default N ,
  `Create_view_priv` enum(N , Y) character set utf8 NOT NULL default N ,
  `Show_view_priv` enum(N , Y) character set utf8 NOT NULL default N ,
  `Create_routine_priv` enum(N , Y) character set utf8 NOT NULL default N ,
  `Alter_routine_priv` enum(N , Y) character set utf8 NOT NULL default N ,
  `Create_user_priv` enum(N , Y) character set utf8 NOT NULL default N ,
  `ssl_type` enum(, ANY , X509 , SPECIFIED) character set utf8 NOT NULL default ,
  `ssl_cipher` blob NOT NULL,
  `x509_issuer` blob NOT NULL,
  `x509_subject` blob NOT NULL,
  `max_questions` int(11) unsigned NOT NULL default 0 ,
  `max_updates` int(11) unsigned NOT NULL default 0 ,
  `max_connections` int(11) unsigned NOT NULL default 0 ,
  `max_user_connections` int(11) unsigned NOT NULL default 0 ,
  PRIMARY KEY  (`Host`,`User`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT= Users and global privileges |

`Host`,`User`,`Password` 三個字段記錄允許訪問數據庫的用戶機器口令以及可以連接的主機
mysql select host,user,password from user; 
+———–+——+——————————————-+
| host  | user | password  |
+———–+——+——————————————-+
| localhost | root | *B22DF64775852C409540CACB81399E4D2E7F93AC |
+———–+——+——————————————-+
1 row in set (0.00 sec) 

其他字段包括權限控制,是否對口令加密等信息

————

db 表和 host 表

兩個表一起使用,記錄用戶可以對那些數據庫進行什么樣的操作

mysql desc db;
+———————–+—————+——+—–+———+——-+
| Field  | Type  | Null | Key | Default | Extra |
+———————–+—————+——+—–+———+——-+
| Host  | char(60)  | NO  | PRI |  |  |
| Db  | char(64)  | NO  | PRI |  |  |
| User  | char(16)  | NO  | PRI |  |  |
| Select_priv  | enum(N , Y) | NO  |  | N  |  |
| Insert_priv  | enum(N , Y) | NO  |  | N  |  |
| Update_priv  | enum(N , Y) | NO  |  | N  |  |
| Delete_priv  | enum(N , Y) | NO  |  | N  |  |
| Create_priv  | enum(N , Y) | NO  |  | N  |  |
| Drop_priv  | enum(N , Y) | NO  |  | N  |  |
| Grant_priv  | enum(N , Y) | NO  |  | N  |  |
| References_priv  | enum(N , Y) | NO  |  | N  |  |
| Index_priv  | enum(N , Y) | NO  |  | N  |  |
| Alter_priv  | enum(N , Y) | NO  |  | N  |  |
| Create_tmp_table_priv | enum(N , Y) | NO  |  | N  |  |
| Lock_tables_priv  | enum(N , Y) | NO  |  | N  |  |
| Create_view_priv  | enum(N , Y) | NO  |  | N  |  |
| Show_view_priv  | enum(N , Y) | NO  |  | N  |  |
| Create_routine_priv  | enum(N , Y) | NO  |  | N  |  |
| Alter_routine_priv  | enum(N , Y) | NO  |  | N  |  |
| Execute_priv  | enum(N , Y) | NO  |  | N  |  |
+———————–+—————+——+—–+———+——-+
20 rows in set (0.00 sec)

mysql desc host;
+———————–+—————+——+—–+———+——-+
| Field  | Type  | Null | Key | Default | Extra |
+———————–+—————+——+—–+———+——-+
| Host  | char(60)  | NO  | PRI |  |  |
| Db  | char(64)  | NO  | PRI |  |  |
| Select_priv  | enum(N , Y) | NO  |  | N  |  |
| Insert_priv  | enum(N , Y) | NO  |  | N  |  |
| Update_priv  | enum(N , Y) | NO  |  | N  |  |
| Delete_priv  | enum(N , Y) | NO  |  | N  |  |
| Create_priv  | enum(N , Y) | NO  |  | N  |  |
| Drop_priv  | enum(N , Y) | NO  |  | N  |  |
| Grant_priv  | enum(N , Y) | NO  |  | N  |  |
| References_priv  | enum(N , Y) | NO  |  | N  |  |
| Index_priv  | enum(N , Y) | NO  |  | N  |  |
| Alter_priv  | enum(N , Y) | NO  |  | N  |  |
| Create_tmp_table_priv | enum(N , Y) | NO  |  | N  |  |
| Lock_tables_priv  | enum(N , Y) | NO  |  | N  |  |
| Create_view_priv  | enum(N , Y) | NO  |  | N  |  |
| Show_view_priv  | enum(N , Y) | NO  |  | N  |  |
| Create_routine_priv  | enum(N , Y) | NO  |  | N  |  |
| Alter_routine_priv  | enum(N , Y) | NO  |  | N  |  |
| Execute_priv  | enum(N , Y) | NO  |  | N  |  |
+———————–+—————+——+—–+———+——-+
19 rows in set (0.01 sec)

——————

tables_priv 表和 columns_priv 表

記錄 dba 分配和限制的權限
分別對應的是表一級的權限以及字段

在獲取權限時首先讀取 user 表,確定用戶有鏈接權限后才進一步驗證是否有其他權限
所以之后訪問的是 db 表和 host 表
最后才是 tables_priv 表和 column_priv 表

特殊情況:
  本地用戶 localhost 可以以 root 形勢連接系統中所有數據庫
 windows 允許本地連接訪問所有數據庫,unix 允許本地完全訪問 test 數據庫
  對來自其他主機的用戶默認拒絕訪問

—————-

授權、廢除核瀏覽用戶權限

本地連接
mysql -u root -p

全表授權:
mysql grant select on an.a  to test@localhost identified by anbaisheng
字段授權:
mysql grant select (id,name) on an.a to test@localhost;
回收權限:
mysql revoke select on an.a from test@localhost;

mysql 還提供了 all 權限等級作為全部權限的快捷方式

將 an 用戶的全部權限授予 test:
mysql grant all on an.* to test@localhost;

mysql 還提供了 usage 權限等級,只擁有創建用戶但不授予其他任何權限
mysql grant usage on an.* to test@localhost;
Query OK, 0 rows affected (0.00 sec)

——————

限制資源的使用

user 表中有字段
max_questions
max_updates
max_connections
用來限制具體用戶每個小時內的查詢、表或者記錄更新和新連接的數量
這些限制可以寫在 grant 語句中,用 with 關鍵字寫就可以

也可以直接向 user 表中插入數據來進行權限管理
插入數據后需要 flush privileges 來使其生效

——————–

查詢權限

show grants for user@server;

mysql show grants for test@localhost;
+————————————————————————————————————-+
| Grants for test@localhost  |
+————————————————————————————————————-+
| GRANT USAGE ON *.* TO test @ localhost IDENTIFIED BY PASSWORD *B22DF64775852C409540CACB81399E4D2E7F93AC |
| GRANT ALL PRIVILEGES ON `an`.* TO test @ localhost   |
| GRANT SELECT (name, id) ON `an`.`a` TO test @ localhost   |
+————————————————————————————————————-+
3 rows in set (0.00 sec)

———————

重新加載授權表

mysql flush privileges;
Query OK, 0 rows affected (0.00 sec)

/usr/local/mysql/bin/mysqladmin -u root reload

———————

重置授權表

1/usr/local/mysql/support-files/mysql.server stop
2rm -rf /usr/local/mysql/data/mysql
3/usr/local/mysql/scripts/mysql_install_db
4\chown -R mysql:mysql /usr/local/mysql/data/mysql
5/usr/local/mysql/support-files/mysql.server start

———————-

更改用戶口令

mysql -h localhost -u logger -p

腳本中可以使用如下語法
mysql -h localhost -u logger -ptimber

如果直接在 user 表中修改密碼必須使用 password 函數將明文密碼轉換后才可以

update user set password =password(anbaisheng
flush privileges;

mysql set password for test@localhost=password(anbaisheng

————————

設置 root 口令

立即生效
/usr/local/mysql/bin/mysqladmin -u root password new_password

也可以使用常規的更改方式來修改

————————-

重置 root 口令

1、/usr/local/mysql/support-files/mysql.server stop
2、/usr/local/mysql/bin/mysqld_safe –skip-grant-tables –skip-networking
3、mysql
 use mysql
 update user set password =password(new-password) where user= root
4、/usr/local/mysql/support-files/mysql.server stop
  /usr/local/mysql/support-files/mysql.server start 

關于“mysql 安全、訪問控制和權限怎么配置”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注丸趣 TV 行業資訊頻道,丸趣 TV 小編每天都會為大家更新不同的知識點。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-03發表,共計7884字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 锦州市| 玛曲县| 天门市| 思茅市| 扶余县| 门源| 诸城市| 大荔县| 崇信县| 吉隆县| 辉县市| 济宁市| 水富县| 洛浦县| 遵化市| 金昌市| 长垣县| 额敏县| 长沙县| 宁明县| 海伦市| 三亚市| 阿荣旗| 双峰县| 温泉县| 新蔡县| 寿宁县| 泗水县| 奉化市| 葫芦岛市| 依兰县| 周至县| 莱西市| 嵊泗县| 镇安县| 东乌珠穆沁旗| 德兴市| 酒泉市| 福海县| 巴马| 盐津县|