<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 19.2\. 用戶名映射 當使用像Ident 或 GSSAPI這樣的外部認證系統時,發起連接的操作系統用戶名可能與他需要連接的數據庫用戶是不同的。 在這種情況下,用戶名映射可用于映射操作系統用戶名到數據庫用戶。要使用用戶名映射,在`pg_hba.conf` 中的選項中指定`map`=`_map-name_`。這個選項支持所有接受外部用戶名的認證方法。 因為不同的映射可能需要不同的連接,使用的映射名在`pg_hba.conf`中的`_map-name_` 參數中指定,表示為每個獨立的連接使用哪個映射。 用戶名映射在身份映射文件中定義,缺省名為`pg_ident.conf` 并且缺省存儲在集群的數據目錄中。(不過,我們也可以把映射文件放在其它地方;參閱[ident_file](#calibre_link-1561)配置參數。) 身份映射文件包含的下面通用的格式: ``` _map-name_ _system-username_ _database-username_ ``` 注釋和空白與`pg_hba.conf`文件里的一樣處理。`_map-name_` 是將要用于在`pg_hba.conf`中引用這個映射的任意名稱。 另外兩個字段聲明操作系統用戶名和匹配的數據庫用戶名。同一個`_map-name_` 可以在一個映射中多次使用來聲明多個用戶映射。 對一個操作系統用戶可以映射為多少個數據庫用戶沒有限制,反之亦然。 對一個給定的操作系統用戶可以映射為多少個數據庫用戶沒有限制,反之亦然。 因此,映射中的記錄應該被認為是意為"這個操作系統用戶被允許作為這個數據庫用戶連接", 而不是意味著他們是相等的。如果有那對用戶名的任意映射記錄從帶有那個用戶請求連接的數據庫用戶名的外部認證系統獲得, 那么這個連接將被允許。 如果`_system-username_`字段以一個反斜杠(`/`)開始, 那么該字段的剩余部分被作為一個規則表達式對待。(參閱[Section 9.7.3.1](#calibre_link-1037) 獲取關于PostgreSQL規則表達式語法的細節。)規則表達式可以包含一個捕獲, 或括號的子表達式,然后可以在`_database-username_`字段中作為`\1` (backslash-one)引用。 這允許多用戶名的映射在一行中,這對于簡單的語法替換特別有用。例如,這些記錄: ``` mymap /^(.*)@mydomain\.com$ \1 mymap /^(.*)@otherdomain\.com$ guest ``` 將為帶有系統用戶名的以`@mydomain.com`結尾的用戶刪除域部分, 并且允許系統名以`@otherdomain.com`結尾的任意用戶作為`guest`登錄。 > **Tip:** 記住,缺省的,一個規則表達式只可以匹配字符串的一部分。使用`^`和`$`通常是明智的, 就像上面例子所示,來迫使匹配成為整個系統用戶名。 在系統啟動和主服務器收到一個SIGHUP 信號的時候會讀取`pg_ident.conf`文件。如果你在一臺活躍的系統上編輯該文件, 那么你需要給主服務器發信號(使用`pg_ctl reload`或`kill -HUP`)令其重新讀取該文件。 [Example 19-2](#calibre_link-1562)里是一個可以和在[Example 19-1](#calibre_link-1560) 里面演示的`pg_hba.conf`文件配合使用的`pg_ident.conf`文件。 在這個例子的設置里,任何登錄到 192.168 網絡里的機器的用戶,如果用戶名不是`bryanh`, `ann`, `robert` 就不能獲準訪問。Unix 用戶`robert`只有在試圖以 PostgreSQL用戶`bob`身份連接時才允許訪問,而不能是`robert` 或其它什么身份。`ann`將只允許以`ann`的身份連接。用戶`bryanh` 允許以他自己的`bryanh`身份或者作為`guest1`進行連接。 **Example 19-2\. 一個`pg_ident.conf`文件例子** ``` # MAPNAME SYSTEM-USERNAME PG-USERNAME omicron bryanh bryanh omicron ann ann # bob 在這臺機器上的用戶名是 robert omicron robert bob # bryanh也可以以 guest1 身份連接 omicron bryanh guest1 ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看