您可以使用Hologres管理控制臺的用戶管理模塊,新增或刪除用戶,以及為用戶授權。方便您以可視化方式更細致的管理實例內的用戶。
購買實例的阿里云賬號默認為當前實例的超級管理員Superuser,擁有實例的所有權限。在未添加其他用戶之前,用戶管理頁面只顯示當前阿里云賬號的相關信息。用戶管理界面顯示項如下表所示。
顯示項 | 描述 |
成員 | 當前實例中的用戶名,包括阿里云賬號、RAM用戶和自定義賬號。 |
云賬號 | 當前實例中用戶的阿里云賬號ID。 示例如下:
|
賬號類型 | 當前實例的用戶的賬號類型。
|
角色類型 | 當前實例的用戶擁有的權限類型。
|
操作 | 您可以單擊目標成員操作列的刪除,將該用戶從實例內刪除,刪除后用戶將沒有實例的任何訪問權限。 |
使用限制
自定義賬號默認不能查詢MaxCompute外表,如需查詢,請配置USER MAPPING,具體配置方式請參見常見問題。
新增用戶
您可以在用戶管理頁面,使用可視化方式為實例新增用戶。
在用戶管理頁面選擇目標實例名稱,在頁面右上角單擊新增用戶。
在新增用戶對話框,選擇添加當前阿里云賬號下已有的RAM用戶,并選擇實例超級管理員(superuser)或普通用戶用戶類型。
說明如果當前阿里云賬號沒有RAM用戶,您需要創建一個RAM用戶,詳情請參見RAM用戶權限授權快速入門。
Hologres支持使用阿里云賬號和被設為實例超級管理員(Superuser)的RAM賬號新增用戶,其中RAM賬號需要被授予AliyunRAMReadOnlyAccess權限,詳情請參見授予RAM用戶權限。
實例超級管理員(Superuser):擁有實例的所有權限,如果子賬號被授予為Superuser,則無需再額外進行其他授權。
普通用戶:僅被創建至實例中,沒有實例內任何對象(例如數據庫、Schema和表等)的查看及操作權限,需要授予相應的權限,才可以查看或操作實例。
推薦您前往DB管理頁面,使用可視化方式進行授權。您也可以選擇SQL語句授權,詳情請參見RAM用戶權限授權快速入門。
刪除用戶
您可以在用戶管理頁面選擇目標實例名稱,在列表中單擊目標成員操作列的刪除,將該用戶從實例內刪除,刪除后用戶將沒有實例的任何訪問權限。
創建自定義用戶
控制臺操作。
您可以在用戶管理頁面,使用可視化方式為實例創建自定義用戶。
在用戶管理頁面選擇目標實例名稱,在頁面右上角單擊創建自定義用戶。
在創建自定義用戶對話框,配置如下參數。
參數
說明
自定義賬號
請自定義賬號名稱。最大長度為57個字符,由小寫字母,數字和下劃線組成。
選擇成員角色
請選擇用戶類型。
實例超級管理員(Superuser):擁有實例的所有權限,如果子賬號被授予為Superuser,則無需再額外進行其他授權。
普通用戶:僅被創建至實例中,沒有實例內任何對象(例如數據庫、Schema和表等)的查看及操作權限,需要授予相應的權限,才可以查看或操作實例。
密碼
請設置密碼,密碼需符合如下要求。
由大寫字母、小寫字母、數字、特殊字符其中三種及以上組成。
密碼長度為8~32個字符。
支持的特殊字符包含
!@#$%^&*()_+-=
。
確認密碼
請再次輸入密碼。
單擊確認,完成創建自定義用戶。
SQL方式操作。
create user "BASIC$<user_name>" with password '<password>';
user_name為自定義用戶賬號名稱;password為自定義用戶密碼。
其他相關操作
修改自定義用戶密碼。
說明僅自定義用戶支持修改密碼,阿里云賬號及RAM賬號會自動生成AK/SK。
如果您需要修改自定義用戶密碼,有如下兩種方式:
控制臺操作。
在用戶管理頁面的用戶賬號列表,單擊目標自定義用戶操作列的重置密碼。
在重置密碼對話框,輸入新密碼和確認新密碼后,單擊確認。
SQL方式操作。
alter user "BASIC$<user_name>" with password '<password>';
user_name為自定義用戶賬號名稱;password為自定義用戶新密碼。
刪除自定義用戶。
如果您需要刪除自定義用戶,有如下兩種方式:
控制臺操作。
在用戶管理頁面的用戶賬號列表,單擊目標自定義用戶操作列的刪除。
在刪除用戶對話框,單擊確認。
SQL方式操作。
drop user "BASIC$<user_name>";
user_name為自定義用戶賬號名稱。
常見問題
問題現象
自定義賬號訪問MaxCompute外部表時出現如下報錯。
ERROR: Query:[xxxxxx] Build desc failed: failed to check permission: Authorization Failed [4002], You don't exist in project hologres_test. Context ID:xxxxxx-xxxx-xxxx-xxxx-xxxxxxx. --->Tips: Pricipal:INVALID$BASIC$xxx; You don't exist in project xxx
問題原因
創建的自定義賬號僅存在Hologres內部,所以默認情況下無法訪問MaxCompute外部表。
解決方法
請在Hologres中創建
User Mapping
,即將一個自定義賬號綁定至一個擁有MaxCompute對應項目和Hologres內部表數據權限的阿里云RAM賬號。語法示例
CREATE USER MAPPING FOR "<user_name>" SERVER odps_server OPTIONS ( access_id '<Access_id>', access_key '<Access_key>' );
參數說明
參數
說明
user_name
自定義賬戶的用戶名。
Access_id
具有當前數據庫登錄權限賬號的AccessKey ID。
您可以單擊AccessKey 管理,獲取AccessKey ID。
Access_key
具有當前數據庫登錄權限賬號的AccessKey Secret。
您可以單擊AccessKey 管理,獲取AccessKey Secret。
使用示例
--為用戶BASIC$test創建USER MAPPING CREATE USER MAPPING FOR "BASIC$test" SERVER odps_server OPTIONS ( access_id 'LTxxxxxxxxxx', access_key 'y8xxxxxxxxxxxxx'); --為當前用戶創建USER MAPPING CREATE USER MAPPING FOR CURRENT_USER SERVER odps_server OPTIONS ( access_id 'LTxxxxxxxxxx', access_key 'y8xxxxxxxxxxxxx');