summaryrefslogtreecommitdiff
path: root/mysql-test/suite/funcs_1/datadict/datadict_priv.inc
blob: 178a8f18c74ce0ffa33f946cdc3e1379ccacb693 (plain)
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
############## suite/funcs_1/datadict/datadict_priv.inc ################
#                                                                      #
# DDL and DML operations on information_schema tables                  #
#                                                                      #
# Creation:                                                            #
# 2007-08    hhunger Implement this test as part of                    #
#                    WL#3982 Test information_schema.processlist       #
#                                                                      #
# Last update:                                                         #
# 2007-08-14 mleich  Some cleanup                                      #
#                                                                      #
########################################################################

# These variables have to be set before sourcing this file.
#
# information_schema table to be tested
# let $table= processlist;
#
# columns of the information_schema table e.g. to use in a select.
# let $columns= ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, PROGRESS;
#
# Where clause for an update.
# let $update_where= WHERE id=1 ;
#
# Column to be used in the SET of an update.
# let $set_column= user='any_user' ;
#
# Where clause of a delete.
# let $delete_where= WHERE id=1 ;
#
# Column to be dropped.
# let $drop_column= user;
#
# Column to be indexed
# let $index_col= user;


# data access

eval CREATE TEMPORARY TABLE test.t_$table AS SELECT * FROM $table;

eval UPDATE test.t_$table SET user='horst' $update_where ;

--error ER_DBACCESS_DENIED_ERROR
eval INSERT INTO $table SELECT * FROM test.t_$table;

# bug#30208: CREATE TABLE ...LIKE does not accept dbname.tablename:unknown database
eval DROP TABLE test.t_$table;

--error ER_VIEW_NONUPD_CHECK
eval CREATE VIEW test.v_$table ($columns) AS SELECT * FROM $table WITH CHECK OPTION;

eval CREATE VIEW test.v_$table ($columns) AS SELECT * FROM $table;

# !!! This query returns a wrong error due to a bug in the code of mwl106
# !!! Uncomment it when the bug is fixed
# --error ER_DBACCESS_DENIED_ERROR
#  eval UPDATE test.v_$TABLE SET TIME=NOW() WHERE id = 1;

eval DROP VIEW test.v_$table;

--error ER_DBACCESS_DENIED_ERROR
eval UPDATE $table SET $set_column $update_where;

--error ER_DBACCESS_DENIED_ERROR
eval DELETE FROM $table $delete_where;

# change privileges

--error ER_DBACCESS_DENIED_ERROR
eval REVOKE ALL ON $table FROM current_user;

--error ER_DBACCESS_DENIED_ERROR
eval GRANT INSERT,UPDATE ON $table TO current_user;

SHOW GRANTS;

#----------------------------------------------------------------------
# table access

--error ER_DBACCESS_DENIED_ERROR
eval CREATE INDEX i_$table ON $table ($index_col);

--error ER_DBACCESS_DENIED_ERROR
eval DROP TABLE $table;

--error ER_DBACCESS_DENIED_ERROR
eval ALTER TABLE $table DROP COLUMN $drop_column;

--error ER_DBACCESS_DENIED_ERROR
eval ALTER TABLE $table ADD COLUMN (my_column INT);

--error ER_DBACCESS_DENIED_ERROR
eval RENAME TABLE $table TO new_$table;

--error ER_DBACCESS_DENIED_ERROR
eval RENAME TABLE $table TO files;

--error ER_DBACCESS_DENIED_ERROR
eval CREATE TABLE new_$table AS SELECT * FROM $table;

#----------------------------------------------------------------------
# database access

--error ER_DBACCESS_DENIED_ERROR
DROP DATABASE information_schema;

--error ER_PARSE_ERROR
RENAME DATABASE information_schema TO info_schema;

--error ER_DBACCESS_DENIED_ERROR
ALTER DATABASE information_schema UPGRADE DATA DIRECTORY NAME;