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