账号管理
更新时间:2024-03-14
账号管理
创建账号
使用以下代码可以在某个主实例下创建一个新的账号。
Go
1// import "github.com/baidubce/bce-sdk-go/services/rds"
2
3args := &rds.CreateAccountArgs{
4 // 账号名称,不能为保留关键字,必选
5 AccountName: "accountName",
6 // 账号的密码,由字母、数字或下划线组成,长度6~32位,密码需要加密传输,禁止明文传输,必选
7 Password: "password",
8 // 账号权限类型,Common:普通账号,Super:super账号。默认为普通账号,可选
9 AccountType: "Common",
10 // MySQL和SQL Server实例可设置此项,可选
11 DatabasePrivileges: []rds.DatabasePrivilege{
12 {
13 //数据库名称
14 DbName: "user_photo_001",
15 //授权类型。ReadOnly:只读,ReadWrite:读写
16 AuthType: "ReadOnly",
17 },
18 },
19 // 账号的描述信息,可选
20 Desc: "账号user1",
21 // 账号归属类型,OnlyMaster:主实例上使用的账号,RdsProxy:该主实例对应的代理实例上使用的账号。默认为OnlyMaster账号,可选
22 Type: "OnlyMaster",
23}
24err = client.CreateAccount(instanceId, args)
25if err != nil {
26 fmt.Printf("create account error: %+v\n", err)
27 return
28}
29
30fmt.Println("create account success.")
注意:
- 实例状态为Available,实例必须是主实例。
- 没有超出实例最大账号数量。
- 若实例的数据库引擎为PostgreSQL,则只允许创建Super账号。其它账号和数据库操作通过这个Super账号来管理。
- 若实例的数据库引擎为MySQL,则允许创建任意类型的账号。
- 若实例的数据库引擎为SQLServer,则只允许创建Common账号。
查询账号列表
使用以下代码可以查询指定实例的账号列表。
Go
1// import "github.com/baidubce/bce-sdk-go/services/rds"
2
3result, err := client.ListAccount(instanceId)
4if err != nil {
5 fmt.Printf("list account error: %+v\n", err)
6 return
7}
8
9// 获取account的列表信息
10for _, e := range result.Accounts {
11 fmt.Println("rds accountName: ", e.AccountName)
12 fmt.Println("rds desc: ", e.Desc)
13 fmt.Println("rds status: ", e.Status)
14 fmt.Println("rds type: ", e.Type)
15 fmt.Println("rds accountType: ", e.AccountType)
16}
查询特定账号信息
使用以下代码可以查询特定账号信息。
Go
1// import "github.com/baidubce/bce-sdk-go/services/rds"
2
3result, err := client.GetAccount(instanceId,accountName)
4if err != nil {
5 fmt.Printf("get account error: %+v\n", err)
6 return
7}
8
9// 获取account的列表信息
10fmt.Println("rds accountName: ", result.AccountName)
11fmt.Println("rds desc: ", result.Desc)
12fmt.Println("rds status: ", result.Status)
13fmt.Println("rds type: ", result.Type)
14fmt.Println("rds accountType: ", result.AccountType)
更新账号描述信息
使用以下代码可以更新账号描述信息
Go
1// import "github.com/baidubce/bce-sdk-go/services/rds"
2args := &ModifyAccountDesc{
3 Remark: "test",
4}
5err := client.ModifyAccountDesc(instanceId,accountName,args)
6if err != nil {
7 fmt.Printf("modify account desc error: %+v\n", err)
8 return
9}
10fmt.Printf("modify account desc success\n")
删除特定账号信息
使用以下代码可以删除特定账号信息。
Go
1// import "github.com/baidubce/bce-sdk-go/services/rds"
2
3result, err := client.DeleteAccount(instanceId,accountName)
4if err != nil {
5 fmt.Printf("delete account error: %+v\n", err)
6 return
7}
8fmt.Printf("delete account success\n")
更新账号密码
使用以下代码可以更新账号密码
Go
1// import "github.com/baidubce/bce-sdk-go/services/rds"
2args := &UpdatePasswordArgs{
3 Password: "test",
4}
5err := client.UpdateAccountPassword(instanceId,accountName,args)
6if err != nil {
7 fmt.Printf("update account password error: %+v\n", err)
8 return
9}
10fmt.Printf("update account password success\n")
更新账号权限
使用以下代码可以更新账号权限
Go
1// import "github.com/baidubce/bce-sdk-go/services/rds"
2args := &UpdateAccountPrivileges{
3 DatabasePrivileges: []DatabasePrivilege{{
4 DbName: "test_db",
5 AuthType: "ReadOnly",
6 }},
7}
8err := client.UpdateAccountPrivileges(instanceId,accountName,args)
9if err != nil {
10 fmt.Printf("update account privilege error: %+v\n", err)
11 return
12}
13fmt.Printf("update account privilege success\n")