Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 21 additions & 20 deletions pkg/frontend/authenticate2.go
Original file line number Diff line number Diff line change
Expand Up @@ -148,26 +148,27 @@ var checkPrivilegeInCache = func(ctx context.Context, ses *Session, priv *privil
if mi.privilegeTyp == PrivilegeTypeCanGrantRoleToOthersInCreateUser {
//TODO: normalize the name
//TODO: simplify the logic
//yes, err = determineUserCanGrantRolesToOthersInternal(ctx, bh, ses, []*tree.Role{mi.role})
//if err != nil {
// return false, err
//}
//if yes {
// from := &verifiedRole{
// typ: roleType,
// name: mi.role.UserName,
// }
// for _, user := range mi.users {
// to := &verifiedRole{
// typ: userType,
// name: user.Username,
// }
// err = verifySpecialRolesInGrant(ctx, ses.GetTenantInfo(), from, to)
// if err != nil {
// return false, err
// }
// }
//}
// yes, err = determineUserCanGrantRolesToOthersInternal(ctx, bh, ses, []*tree.Role{mi.role})
// if err != nil {
// return false, err
// }
// if yes {
// from := &verifiedRole{
// typ: roleType,
// name: mi.role.UserName,
// }
// for _, user := range mi.users {
// to := &verifiedRole{
// typ: userType,
// name: user.Username,
// }
// err = verifySpecialRolesInGrant(ctx, ses.GetTenantInfo(), from, to)
// if err != nil {
// return false, err
// }
// }
// }
yes = false
} else {
tempEntry := privilegeEntriesMap[mi.privilegeTyp]
tempEntry.databaseName = mi.dbName
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -185,4 +185,14 @@ drop database if exists s;
drop database if exists v;
drop role if exists r1;
drop user if exists u1;
create account `test_create_user` ADMIN_NAME "admin" IDENTIFIED BY "123";
create user if not exists user1 identified by '123';
create role if not exists role1;
grant CONNECT,create user,alter user, drop user on account * to role1;
grant role1 to user1;
create user user2 identified by '123' default role role1;
internal error: do not have privilege to execute the statement
create user user2 identified by '123' default role role1;
internal error: do not have privilege to execute the statement
drop account `test_create_user`;
set global enable_privilege_cache = on;
Original file line number Diff line number Diff line change
Expand Up @@ -215,4 +215,17 @@ drop database if exists v;

drop role if exists r1;
drop user if exists u1;

create account `test_create_user` ADMIN_NAME "admin" IDENTIFIED BY "123";
-- @session:id=4&user=test_create_user:admin&password=123
create user if not exists user1 identified by '123';
create role if not exists role1;
grant CONNECT,create user,alter user, drop user on account * to role1;
grant role1 to user1;
-- @session
-- @session:id=5&user=test_create_user:user1:role1&password=123
create user user2 identified by '123' default role role1;
create user user2 identified by '123' default role role1;
-- @session
drop account `test_create_user`;
set global enable_privilege_cache = on;
Loading