伺服器權限系統是如何工作的?

可應用作業系統:Windows、Mac、Linux

可應用 Navicat 產品:Navicat for MySQL、Navicat for PostgreSQL、Navicat for MariaDB、Navicat Premium

可應用 Navicat 版本編號:全部

 

MySQL & MariaDB

有關使用者權限的資訊是儲存在 mysql 資料庫(即在名稱為 mysql 的資料庫)中的 user、db、host、tables_priv 和 columns_priv 資料表內。當 MySQL 伺服器啟動時,它會讀取這些資料表的內容。

MySQL 存取控制將包括兩個階段:

  1. 伺服器檢查你的桌面(主機位址或 IP 位址)是否允許連線。
  2. 假設你可以連線,伺服器會檢查你的每個請求,看你是否有足夠的權限執行它。例如:Create table 權限、Drop table 權限或 Alter table 權限。

MySQL 伺服器在這兩個階段的存取控制使用 Mysql 資料庫中的 User、Db 和 Host 資料表。

伺服器是這樣使用這五個授予資料表:

mysql.user 資料表的欄位決定允許或拒絕進來的連線。對於允許的連線,任何在 mysql.user 資料表授予的權限表示使用者的全域(超級使用者)權限。這些權限適用於伺服器上的所有資料庫。

mysql.db 和 mysql.host 資料表是一起使用的:

mysql.db 資料表的欄位決定哪些使用者可以從哪些主機存取哪些資料庫。權限欄位決定哪些操作是允許的。

當你想一個特定的 mysql.db 資料表項目適用於幾台主機,mysql.host 資料表是用作 mysql.db 的一個延伸。例如:如果你想要一個使用者能夠從在網絡中的多個主機使用一個資料庫,在使用者的 mysql.db 資料表項目中保留 mysql.host 空值,然後為每一個主機在 mysql.host 資料表上填充。

mysql.tables_priv 和 mysql.columns_priv 資料表類似 mysql.db 資料表,但他們適用於資料表和欄的級別而不是資料庫級別。

 

PostgreSQL

有關使用者權限的資訊是儲存在 pg_catalog 結構描述中的 pg_shadow 資料表內。當 PostgreSQL 伺服器啟動時,它會讀取這資料表的內容。

PostgreSQL 存取控制將包括兩個階段:

  1. 伺服器檢查你的桌面(主機位址或 IP 位址)是否允許連線。
  2. 假設你可以連線,伺服器會檢查你的每個請求,看你是否有足夠的權限執行它。例如:Create table 權限、Drop table 權限或 Alter table 權限。
還有其他問題嗎? 提交查詢.
還有其他問題?提交請求

0 評論

文章評論已關閉。