Mysql

授予第三方對 AWS 託管的 MySQL 的訪問權限

  • March 25, 2022

我有一個在 AWS 上託管的生產 MySQL 數據庫,用於與我合作的電子商務商店。該公司的員工請求訪問我們的實時 SQL 數據庫,以便與 Tableau/Qlikview 等 BI 工具一起使用。如何授予這些使用者只讀權限以分析實時數據庫中的數據而不是寫入數據的能力?

GRANT SELECT ON My_Database.* TO bi_user;

這裡有詳細解釋(下面的範常式式碼)。

不要忘記,擁有特權的人可以通過執行複雜的報告SELECT來削弱數據庫,就好像他們擁有特權一樣。DELETE

來自網站的程式碼:


If you want give a user read-only access to a database, you can grant to him/her only the "SELECT" privilege, so that he/she can not run any DDL statements, and any INSERT, UPDATE, or DELETE statements. The tutorial exercise gives you a good example:
>cd \mysql\bin
>mysql -u root -ppassword

mysql> USE fyi;
Database changed

mysql> CREATE TABLE links (id INTEGER, name VARCHAR(80));
Query OK, 0 rows affected (0.14 sec)

mysql> INSERT INTO links VALUES (1, 'dba.fyicenter.com');
Query OK, 1 row affected (0.05 sec)

mysql> CREATE USER guest IDENTIFIED BY 'other_password';
Query OK, 0 rows affected (0.24 sec)

mysql> GRANT SELECT ON fyi.* TO guest;
Query OK, 0 rows affected (0.00 sec)

mysql> QUIT;

>mysql -u guest -pother_password

mysql> use fyi;
Database changed

mysql> SELECT * FROM links;
+------+-------------------+
| id   | name              |
+------+-------------------+
|    1 | dba.fyicenter.com |
+------+-------------------+
1 row in set (0.04 sec)

mysql> INSERT INTO links VALUES (2, 'dev.fyicenter.com');
ERROR 1142 (42000): INSERT command denied to user 
'guest'@'localhost' for table 'links'

在您的 AWS 管理控制台中。身份訪問管理 (IAM) 為公司創建策略、組和使用者。只授予他們必要的權限。

為每個人創建密碼,並向他們發送伺服器、數據庫、埠和登錄憑據。

如果他們已經在使用 tableau,他們將知道如何使用您提供給他們的憑據進行連接。 Tableau 和 AWS 如何協同工作

然後,他們應該能夠像 Tableau 中的任何其他數據源一樣連接到數據庫。

引用自:https://dba.stackexchange.com/questions/132805