好程式設計師大資料培訓分享演算法系列資料庫使用者管理

好程式設計師發表於2020-06-03

  好程式設計師 大資料培訓分享 演算法系列 資料庫使用者管理1 、使用者定義

  使用者定義:

  mysql> select user,host,password from mysql.user;

  +------+--------------+-------------------------------------------+

  | user | host         | password   

  ==================================

 

user                      主機範圍

使用某個使用者               從哪些主機地址可以訪問我的資料庫

 

使用者的功能:

1 、用來登入 mysql 資料庫

2 、用來管理資料庫物件(庫,表)

 

許可權:

         功能:針對不同的使用者,設定不同的物件管理能力。

    select updata delete insert creat ...

許可權的範圍:

*.*  : 全域性範圍

oldboy.* : 單庫級別

oldboy.t1 : 單表級別

建立使用者並授權:

grant         all  on  wordpress.* to workpress@'10.0.0.%' identified by 'oldboy123';

授權命令 許可權      許可權範圍                 用於                 主機範圍                                  密碼

 

修改超級管理員使用者:root

修改密碼:mysqladmin -uroot -p password oldboy123

root@localhost

普通使用者:select,updata,delete,insert,create,drop ( 增刪改查 )

 

只針對使用者的操作命令:

mysql> create user zabbix@'10.0.0.%' identified by 'oldboy123';

Query OK, 0 rows affected (0.01 sec)

mysql> drop user root@'127.0.0.1';

Query OK, 0 rows affected (0.00 sec)

mysql> select user,host,password from mysql.user;

特殊的刪除方法:

mysql> delete from mysql.user where user='oldboy' and host='localhost';

Query OK, 1 row affected (0.00 sec)

mysql> flush privileges;

2 、使用者授權

grant         all  on  wordpress.* to workpress@'10.0.0.%' identified by 'oldboy123';

授權命令 許可權      許可權範圍                 用於                 主機範圍

 

all 許可權 :

SELECT,INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES,

INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE,

REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE,

CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE

 

開發使用者許可權:(root 使用者進行授權)

        grant SELECT,INSERT, UPDATE, DELETE, CREATE, DROP on testdb.* to zabbix@'10.0.0.%'

使用zabbix 檢查:

mysql> create database testdb;

Query OK, 1 row affected (0.00 sec)

mysql> show databases;

建立使用者並授權:

mysql> grant all on *.* to root@'10.0.0.%' identified by 'oldboy123';

Query OK, 0 rows affected (0.00 sec)

mysql> select user,host,password from mysql.user;

查詢使用者的許可權:

mysql> show grants for zabbix@'10.0.0.%';

建立類似管理員:

mysql> show grants for root@'10.0.0.%';

本地超級管理員:有grants 許可權

mysql> show grants for root@'localhost';

收回許可權:

mysql> revoke create,drop  on testdb.* from zabbix@'10.0.0.%';

mysql> show grants for zabbix@'10.0.0.%';

 

思考:

grant select on *.* to zabbix@'10.0.0.%';

grant INSERT, UPDATE, DELETE, CREATE, DROP on testdb.* to zabbix@'10.0.0.%';

grant update on testdb.t1 to zabbix@'10.0.0.%';

 

###

mysql> use testdb;

mysql> create table t1(id int);

mysql> show tables;

mysql> insert into t1 values(1);

 

問:zabbix@'10.0.0.%' t1 表到底有什麼許可權?

如果對某個使用者在不同的資料庫級別設定了許可權,最終許可權許可權疊加,加起來的最大許可權為準。

建議,不要多範圍授權。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2695819/,如需轉載,請註明出處,否則將追究法律責任。

相關文章