PolarDB-X 1.0 OpenAPI的一部分操作(例如創(chuàng)建數(shù)據(jù)庫(kù))依賴(lài)RDS的OpenAPI接口。所以,為確保PolarDB-X 1.0控制臺(tái)有權(quán)限操作用戶(hù)的RDS資源,PolarDB-X 1.0 OpenAPI的使用者要通過(guò)RAM服務(wù)給PolarDB-X 1.0控制臺(tái)授權(quán)RDS資源的訪問(wèn)權(quán)限。否則調(diào)用PolarDB-X OpenAPI會(huì)出現(xiàn)權(quán)限不足而報(bào)錯(cuò)

通過(guò)控制臺(tái)進(jìn)行授權(quán)(推薦)

本方式適用于可以正常登錄PolarDB-X 1.0控制臺(tái)的用戶(hù)。步驟如下:

  1. 登錄PolarDB-X 1.0控制臺(tái), 依次單擊資源授權(quán)>激授授權(quán)
  2. 在與資源訪問(wèn)授權(quán)對(duì)話(huà)框,單擊同意授權(quán)

通過(guò)調(diào)用RAM服務(wù)的OpenAPI進(jìn)行授權(quán)

適用于因特殊原因(如混合云場(chǎng)景)無(wú)法登錄PolarDB-X 1.0控制臺(tái)的用戶(hù)。步驟如下:

  1. 調(diào)用RAM服務(wù)的OpenAPI,為PolarDB-X 1.0實(shí)例所屬的主賬戶(hù)創(chuàng)建RAM服務(wù)角色AliyunDRDSDefaultRole
  2. PolarDB-X 1.0控制臺(tái),以AliyunDRDSDefaultRole角色調(diào)用RDS OpenAPI來(lái)管理RDS資源。

使用RAM的OpenAPI Java SDK創(chuàng)建服務(wù)角色, Java代碼如下所示:

public static void createDrdsRole() throws ServerException, ClientException { 

    String rolePolicyDoc = "{\"Statement\":[{\"Action\": \"sts:AssumeRole\", \"Effect\": \"Allow\",\"Principal\":{\"Service\":[\"drds.aliyuncs.com\"]}}],\"Version\": \"1\"}";

    String roleName = "AliyunDRDSDefaultRole";
    CreateRoleRequest request = new CreateRoleRequest();
    request.setAssumeRolePolicyDocument(rolePolicyDoc);
    request.setRoleName(roleName);
    client.getAcsResponse(request);
}