~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/simple_user_policy/tests/r/basic.result

  • Committer: Monty Taylor
  • Date: 2010-04-15 19:14:53 UTC
  • mto: This revision was merged to the branch mainline in revision 1476.
  • Revision ID: mordred@inaugust.com-20100415191453-ril2x8qdo78fny9w
Replaced test_authz with a plugin implementing a hard-coded simple
multi-tennancy policy. The policy describes:
- A root user exists which can do anything
- A user may only see a schema that is named the same has his user name
- A user may see data_dictionary and information_schema (data_dictionary
  required for show databases to work)

This way, we can more clearly test the results of the authorization
interface while providing an optional plugin that is actually useful to some
human.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
create database authz_no;
2
 
SELECT * from authz_no.dont_exist;
3
 
ERROR 42S02: Table 'authz_no.dont_exist' doesn't exist
4
 
create database authz_yes;
5
 
show databases;
6
 
Database
7
 
authz_no
8
 
authz_yes
9
 
data_dictionary
10
 
information_schema
11
 
mysql
12
 
test
13
 
show databases;
14
 
Database
15
 
authz_yes
16
 
data_dictionary
17
 
information_schema
18
 
mysql
19
 
test
20
 
SELECT * from authz_no.dont_exist;
21
 
ERROR 42000: Access denied for user 'authz'@'LOCALHOST' to database 'authz_no'
22
 
create database authz_no;
23
 
ERROR 42000: Access denied for user 'authz'@'LOCALHOST' to database 'authz_no'
24
 
drop database authz_no;
25
 
ERROR 42000: Access denied for user 'authz'@'LOCALHOST' to database 'authz_no'
26
 
show processlist;
27
 
ID      USER    HOST    DB      COMMAND TIME    STATE   INFO
28
 
1       root    #       test    #       #       #       
29
 
2       authz   #       test    #       #       #       
30
 
3       root    #       test    #       #       #       show processlist
31
 
4       root    #       test    #       #       #       show processlist
32
 
create table t1 (kill_id int);
33
 
insert into t1 values(connection_id());
34
 
select ((@id := kill_id) - kill_id) from t1;
35
 
((@id := kill_id) - kill_id)
36
 
0
37
 
kill @id;
38
 
select ((@id := kill_id) - kill_id) from t1;
39
 
((@id := kill_id) - kill_id)
40
 
0
41
 
select @id != connection_id();
42
 
@id != connection_id()
43
 
1
44
 
update t1 set kill_id= connection_id();
45
 
show processlist;
46
 
ID      USER    HOST    DB      COMMAND TIME    STATE   INFO
47
 
2       authz   #       test    Query   #       Sending data    show processlist
48
 
select ((@id := kill_id) - kill_id) from t1;
49
 
((@id := kill_id) - kill_id)
50
 
0
51
 
kill @id;
52
 
ERROR HY000: Unknown thread id: 5
 
1
create database user1;
 
2
create database user2;
 
3
show databases;
 
4
Database
 
5
DATA_DICTIONARY
 
6
INFORMATION_SCHEMA
 
7
mysql
 
8
test
 
9
user1
 
10
user2
 
11
use user2;
 
12
create table t1 (kill_id int);
 
13
insert into t1 values(connection_id());
 
14
SELECT * from user1.dont_exist;
 
15
ERROR 42S02: Table 'user1.dont_exist' doesn't exist
 
16
show databases;
 
17
Database
 
18
DATA_DICTIONARY
 
19
INFORMATION_SCHEMA
 
20
user1
 
21
SELECT * from user2.dont_exist;
 
22
ERROR 42000: Access denied for user 'user1'@'LOCALHOST' to database 'user2'
 
23
create database authorize_fail;
 
24
ERROR 42000: Access denied for user 'user1'@'LOCALHOST' to database 'authorize_fail'
 
25
drop database user2;
 
26
ERROR 42000: Access denied for user 'user1'@'LOCALHOST' to database 'user2'
 
27
create table t1 (kill_id int);
 
28
insert into t1 values(connection_id());
 
29
show processlist;
 
30
ID      USER    HOST    DB      COMMAND TIME    STATE   INFO
 
31
2       user1   #       user1   #       #       #       
 
32
3       user1   #       user1   #       #       #       show processlist
 
33
select ((@id := kill_id) - kill_id) from t1;
 
34
((@id := kill_id) - kill_id)
 
35
0
 
36
kill @id;
 
37
select ((@id := kill_id) - kill_id) from t1;
 
38
((@id := kill_id) - kill_id)
 
39
0
 
40
select @id != connection_id();
 
41
@id != connection_id()
 
42
1
 
43
update t1 set kill_id = connection_id();
 
44
show processlist;
 
45
ID      USER    HOST    DB      COMMAND TIME    STATE   INFO
 
46
4       user2   #       user2   #       #       #       show processlist
 
47
select ((@id := kill_id) - kill_id) from t1;
 
48
((@id := kill_id) - kill_id)
 
49
0
 
50
kill @id;
 
51
ERROR HY000: Unknown thread id: 1
 
52
show processlist;
 
53
ID      USER    HOST    DB      COMMAND TIME    STATE   INFO
 
54
1       root    #       user2   #       #       #       show processlist
 
55
3       user1   #       user1   #       #       #       show processlist
 
56
4       user2   #       user2   #       #       #       show processlist
 
57
5       user1   #       user1   #       #       #       update t1 set kill_id = connection_id()
 
58
use user1;
 
59
select ((@id := kill_id) - kill_id) from t1;
 
60
((@id := kill_id) - kill_id)
 
61
0
 
62
kill @id;
 
63
select ((@id := kill_id) - kill_id) from t1;
 
64
((@id := kill_id) - kill_id)
 
65
0
 
66
select @id != connection_id();
 
67
@id != connection_id()
 
68
1
53
69
connect(localhost,authz,,authz_no,MASTER_PORT,);
54
70
ERROR 42000: Access denied for user 'authz'@'LOCALHOST' to database 'authz_no'
55
 
drop table t1;
56
 
drop schema authz_yes;
57
 
drop schema authz_no;
 
71
drop schema user1;
 
72
drop schema user2;