账号管理
更新时间:2024-10-14
账号管理
创建账号
使用以下代码可以在某个主实例下创建一个新的账号。
public void createAccount(RdsClient rdsClient) {
RdsCreateAccountRequest createAccountRequest = new RdsCreateAccountRequest();
//指定实例 ID,必选
createAccountRequest.setInstanceId("rds-nr2GCznE");
//账号名称,不能为保留关键字,必选
createAccountRequest.setAccountName("test_acc");
//账号的密码,由字母、数字或下划线组成,长度6~32位。密码需要加密传输,禁止明文传输,必选
createAccountRequest.setPassword("rds_passwordKJH");
//账号权限类型 Common:普通账号,Super:super账号。不传递此参数默认:普通,可选
createAccountRequest.setAccountType(RdsAccountType.Common);
//MySQL和SQL Server实例可设置此项
DatabasePrivilege privilege = new DatabasePrivilege();
//数据库名称
privilege.setDbName("test");
//授权类型。ReadOnly:只读,ReadWrite:读写
privilege.setAuthType("ReadOnly");
List<DatabasePrivilege> privileges = new ArrayList<>();
privileges.add(privilege);
createAccountRequest.setDatabasePrivileges(privileges);
//账号的描述信息,可选
createAccountRequest.setDesc("rds_sdk_created_createAccount_test");
//账号归属类型:OnlyMaster:主实例上使用的账号,RdsProxy:该主实例对应的代理实例上使用的账号,默认为OnlyMaster账号,可选
createAccountRequest.setType("OnlyMaster");
try {
AbstractBceResponse accountResponse = rdsClient.createAccount(createAccountRequest);
print("createAccount", accountResponse);
} catch (GeneralSecurityException e) {
e.printStackTrace();
}
}
注意:
- 在某个主实例下创建一个新的账号。
- 没有超出实例最大账号数量。
- 若实例的数据库引擎为PostgreSQL,则只允许创建Super账号。其它账号和数据库操作通过这个Super账号来管理。
- 若实例的数据库引擎为MySQL,则允许创建任意类型的账号。
- 若实例的数据库引擎为SQLServer,则只允许创建Common账号。
查询账号列表
使用以下代码可以查询指定实例的账号列表。
public void getAccountList(RdsClient rdsClient) {
RdsAccountListRequest listRequest = new RdsAccountListRequest();
//实例ID,必选
listRequest.setInstanceId("rds-jHqrZCEk");
RdsAccountListResponse listResponse = rdsClient.getAccountList(listRequest);
print("getAccountList", listResponse);
}
查询特定账号信息
使用以下代码可以查询特定账号信息。
public void getSpecificAccountInfo(RdsClient rdsClient) {
RdsAccountInfoRequest infoRequest = new RdsAccountInfoRequest();
//实例ID,必选
infoRequest.setInstanceId("rds-eI0QnwMi");
//账号名,必选
infoRequest.setAccountName("rds_test_name");
RdsAccount accountInfo = rdsClient.getSpecificAccountInfo(infoRequest);
print("getSpecificAccountInfo", accountInfo);
}
修改账号备注
使用以下代码可以修改账号备注
public void modifyAccountRemark(RdsClient rdsClient) {
RdsModifyAccountRemarksRequest request = new RdsModifyAccountRemarksRequest();
//实例ID,必选
request.setInstanceId("rds-jHqrZCEk");
//账号的描述信息,必选
request.setRemark("remark1111111944499994");
//账号名称,必选
request.setAccountName("test_account123");
AbstractBceResponse response = rdsClient.modifyAccountRemark(request);
}
修改账号权限
使用以下代码可以修改账号权限
public void modifyAccountPermissions(RdsClient rdsClient) {
RdsModifyAccountPermissionRequest request = new RdsModifyAccountPermissionRequest();
//实例ID,必选
request.setInstanceId("rds-tXjFULZA");
//账号名称,必选
request.setAccountName("nosuper");
//具体的数据库权,为具体的一个库添加权限。MySQL和SQL Server实例可设置此项。必选
DatabasePrivilege privilege = new DatabasePrivilege();
//授权类型。ReadOnly:只读,ReadWrite:读写,必选
privilege.setAuthType("ReadOnly");
//数据库名称
privilege.setDbName("nosuperdb");
List<DatabasePrivilege> privileges = new ArrayList<>();
privileges.add(privilege);
request.setDatabasePrivileges(privileges);
AbstractBceResponse response =rdsClient.modifyAccountPermissions(request);
}
修改账号密码
使用以下代码可以修改账号密码
public void modifyAccountPassword(RdsClient rdsClient) {
try {
RdsModifyAccountPasswordRequest request = new RdsModifyAccountPasswordRequest();
//指定实例 ID,必选
request.setInstanceId("rds-tXjFULZA");
//账号名称,必选
request.setAccountName("nosuper");
//账号的密码,由字母、数字或下划线组成,长度6~32位,密码需要加密传输,禁止明文传输,必选
request.setPassword("123jklMN");
AbstractBceResponse response = rdsClient.modifyAccountPassword(request);
} catch (Throwable t) {
System.exit(1);
}
}
删除账号
public void deleteAccount(RdsClient rdsClient) {
RdsDeleteAccountRequest request = new RdsDeleteAccountRequest();
//指定实例ID,必选
request.setInstanceId("rds-RhmXpFKn");
//账号名称,必选
request.setAccountName("delaccount");
AbstractBceResponse response = rdsClient.deleteAccount(request);
}