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