File: set_default_role_invalid_skip_name_resolve.test

package info (click to toggle)
mariadb 1%3A11.8.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, trixie
  • size: 765,428 kB
  • sloc: ansic: 2,382,827; cpp: 1,803,532; asm: 378,315; perl: 63,176; sh: 46,496; pascal: 40,776; java: 39,363; yacc: 20,428; python: 19,506; sql: 17,864; xml: 12,463; ruby: 8,544; makefile: 6,059; cs: 5,855; ada: 1,700; lex: 1,193; javascript: 1,039; objc: 80; tcl: 73; awk: 46; php: 22
file content (78 lines) | stat: -rw-r--r-- 2,234 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
source include/not_embedded.inc;

--echo #
--echo # MDEV-26875: Wrong user in SET DEFAULT ROLE error
--echo #
create user test_user;
create role test_role;
show grants for test_user;
--error ER_INVALID_ROLE
set default role test_role for test_user;
grant test_role to test_user;
set default role test_role for test_user;
show grants for test_user;
set default role none for test_user;

--echo #
--echo # Try to set default role to role(`test_role`).
--echo --------------------------------------------------------------
show grants for test_role;
create role new_role;
grant new_role to test_role;
show grants for test_role;
# One can not set role to a role
--error ER_INVALID_ROLE
set default role new_role for test_role;

--echo #
--echo # Test of errors, where hostname cannot be resolved `test_user`
--echo --------------------------------------------------------------
# `new_role` is granted to `test_role`
grant test_role to test_user@'%';
set default role test_role for test_user@'%';

connect con_test_user,127.0.0.1,test_user,,,$MASTER_MYPORT;
show grants;
select current_role;
# `test_user` indirectly granted `new_role`
--error ER_INVALID_ROLE
set role `new_role`;

connection default;
set default role none for test_user;
disconnect con_test_user;

connect con_test_user,127.0.0.1,test_user,,,$MASTER_MYPORT;
select current_role;
--error ER_INVALID_ROLE
set role `new_role`;

connection default;
disconnect con_test_user;

--echo #
--echo # Test of anonymous user connection
--echo --------------------------------------------------------------
--source include/add_anonymous_users.inc
# Skip windows, since it uses current user `Administrator` in buildbot.
--source include/not_windows.inc
grant test_role to ''@localhost;

connect(con1,localhost,'',,,$MASTER_MYPORT);
SELECT CURRENT_ROLE;
SET role test_role;
SELECT CURRENT_ROLE;
# user cannot set subset role, since it is not granted explicitly
--error ER_INVALID_ROLE
SET role new_role;
--error ER_PASSWORD_ANONYMOUS_USER
set default role test_role for ''@localhost;

connection default;
disconnect con1;
REVOKE all privileges, grant option from ''@localhost;
--source include/delete_anonymous_users.inc

drop role new_role;
drop role test_role;
drop user test_user;