

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊，請參閱[部落格文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# PG\$1GET\$1SESSION\$1ROLES
<a name="PG_GET_SESSION_ROLES"></a>

傳回目前登入使用者的工作階段角色。使用者的工作階段角色是由身分提供者 (IdP) 為登入使用者定義的群組。例如，[Microsoft Azure Active Directory (Azure AD)](https://azure.microsoft.com/en-us/services/active-directory/) 等身分提供者 (IdP) 會驗證使用者的身分，並在使用者登入程序期間提供使用者所屬的任何外部群組。這些外部群組會轉換為 Amazon Redshift 角色，並可在目前的工作階段期間使用。這些角色稱為工作階段角色。管理員可以授與工作階段角色類似其他 Amazon Redshift 角色的權限。如需使用角色的詳細資訊，請參閱[角色型存取控制 (RBAC)](t_Roles.md)。如需使用身分提供者 (IdP) 管理身分的相關資訊，請參閱《Amazon Redshift 管理指南》**中的[適用於 Amazon Redshift 的原生身分提供者 (IdP) 聯合](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-native-idp.html)。

若要檢視 Amazon Redshift 目錄中定義的角色，請查詢系統檢視 [SVV\$1ROLES](r_SVV_ROLES.md)。

## 語法
<a name="PG_GET_LATE_BINDING_VIEW_COLS-synopsis"></a>

```
pg_get_session_roles()
```

## 傳回類型
<a name="PG_GET_SESSION_ROLES-return-type"></a>

由兩個值組成的一組列。第一個值有兩個部分，由冒號 (:) 分隔，其中包含 `idp-namespace:role-name`。`idp-namespace` 是身分提供者 (IdP) 的命名空間。`role-name` 是身分提供者 (IdP) 中外部群組的名稱。第二個值包含 `role-id`，這是角色識別碼。

## 使用須知
<a name="PG_GET_SESSION_ROLES-usage-notes"></a>

`PG_GET_SESSION_ROLES` 函數會針對每個傳回的工作階段角色傳回一列。

## 範例
<a name="PG_GET_SESSION_ROLES-example"></a>

下列範例會針對 Azure Active Directory IdP 中的每個角色傳回一個資料列。傳回的資料欄會轉換為 `sess_roles`，具有欄 `name` 和 `roleid`。每個 `name` 都包含 Azure Active Directory 命名空間和 Azure Active Directory 中的群組名稱。

```
SELECT * FROM pg_get_session_roles() AS sess_roles(name name, roleid integer);

name                  roleid
--------------------------------
my_aad:test_group_1   106204
my_aad:test_group_2   106205
my_aad:test_group_3   106206
my_aad:test_group_4   106207
my_aad:test_group_5   106208
```

下列範例會針對目前登入的 IAM 使用者所屬的每個 IAM 群組，傳回一個資料列。傳回的資料欄會轉換為 `sess_roles`，具有欄 `name` 和 `roleid`。每個 `name` 都包含 IAM 命名空間和 IAM 群組名稱。

```
SELECT * FROM pg_get_session_roles() AS sess_roles(name name, roleid integer);

name                  roleid
--------------------------------
IAM:myGroup           110332
```