Linux ns8.secondary29.go.th 2.6.32-754.28.1.el6.x86_64 #1 SMP Wed Mar 11 18:38:45 UTC 2020 x86_64
Apache/2.2.15 (CentOS)
: 122.154.134.11 | : 122.154.134.9
Cant Read [ /etc/named.conf ]
5.6.40
apache
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
README
+ Create Folder
+ Create File
/
usr /
share /
mysql-test /
suite /
funcs_1 /
r /
[ HOME SHELL ]
Name
Size
Permission
Action
charset_collation.result
1.32
KB
-rw-r--r--
innodb_bitdata.result
117
B
-rw-r--r--
innodb_cursors.result
116
B
-rw-r--r--
innodb_func_view.result
301.02
KB
-rw-r--r--
innodb_storedproc_02.result
36.28
KB
-rw-r--r--
innodb_storedproc_03.result
15.3
KB
-rw-r--r--
innodb_storedproc_06.result
13.28
KB
-rw-r--r--
innodb_storedproc_07.result
7.77
KB
-rw-r--r--
innodb_storedproc_08.result
20.03
KB
-rw-r--r--
innodb_storedproc_10.result
13.21
KB
-rw-r--r--
innodb_trig_0102.result
15.05
KB
-rw-r--r--
innodb_trig_03.result
25.65
KB
-rw-r--r--
innodb_trig_03e.result
51.01
KB
-rw-r--r--
innodb_trig_0407.result
15.4
KB
-rw-r--r--
innodb_trig_08.result
18.39
KB
-rw-r--r--
innodb_trig_09.result
9.97
KB
-rw-r--r--
innodb_trig_1011ext.result
11.75
KB
-rw-r--r--
innodb_trig_frkey.result
2.23
KB
-rw-r--r--
innodb_views.result
580.67
KB
-rw-r--r--
is_basics_mixed.result
30.01
KB
-rw-r--r--
is_character_sets.result
3.96
KB
-rw-r--r--
is_cml_innodb.result
4.65
KB
-rw-r--r--
is_cml_memory.result
3.69
KB
-rw-r--r--
is_cml_myisam.result
4.7
KB
-rw-r--r--
is_cml_ndb.result
4.67
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.22
KB
-rw-r--r--
is_column_privileges_is_mysql_...
1.44
KB
-rw-r--r--
is_columns.result
19.88
KB
-rw-r--r--
is_columns_innodb.result
76.58
KB
-rw-r--r--
is_columns_is.result
66.43
KB
-rw-r--r--
is_columns_is_embedded.result
64.69
KB
-rw-r--r--
is_columns_memory.result
73.43
KB
-rw-r--r--
is_columns_myisam.result
81.7
KB
-rw-r--r--
is_columns_myisam_embedded.res...
71.07
KB
-rw-r--r--
is_columns_mysql.result
47.6
KB
-rw-r--r--
is_columns_mysql_embedded.resu...
41.16
KB
-rw-r--r--
is_columns_ndb.result
13.46
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
198
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
195
B
-rw-r--r--
is_engines_ndb.result
178
B
-rw-r--r--
is_events.result
6.37
KB
-rw-r--r--
is_key_column_usage.result
16.8
KB
-rw-r--r--
is_key_column_usage_embedded.r...
16.94
KB
-rw-r--r--
is_routines.result
23.09
KB
-rw-r--r--
is_routines_embedded.result
23.94
KB
-rw-r--r--
is_schema_privileges.result
14.65
KB
-rw-r--r--
is_schema_privileges_is_mysql_...
1.86
KB
-rw-r--r--
is_schemata.result
8.57
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
17.47
KB
-rw-r--r--
is_statistics_is.result
1004
B
-rw-r--r--
is_statistics_mysql.result
4.47
KB
-rw-r--r--
is_statistics_mysql_embedded.r...
7.98
KB
-rw-r--r--
is_table_constraints.result
14.35
KB
-rw-r--r--
is_table_constraints_is.result
828
B
-rw-r--r--
is_table_constraints_mysql.res...
1.9
KB
-rw-r--r--
is_table_constraints_mysql_emb...
3.02
KB
-rw-r--r--
is_table_privileges.result
15.08
KB
-rw-r--r--
is_tables.result
17.26
KB
-rw-r--r--
is_tables_embedded.result
17.48
KB
-rw-r--r--
is_tables_innodb.result
3.98
KB
-rw-r--r--
is_tables_is.result
26.86
KB
-rw-r--r--
is_tables_memory.result
4.02
KB
-rw-r--r--
is_tables_myisam.result
4.03
KB
-rw-r--r--
is_tables_myisam_embedded.resu...
4.43
KB
-rw-r--r--
is_tables_mysql.result
12.05
KB
-rw-r--r--
is_tables_mysql_embedded.resul...
22.96
KB
-rw-r--r--
is_tables_ndb.result
4
KB
-rw-r--r--
is_triggers.result
13.86
KB
-rw-r--r--
is_triggers_embedded.result
11.97
KB
-rw-r--r--
is_user_privileges.result
23.96
KB
-rw-r--r--
is_views.result
11.22
KB
-rw-r--r--
is_views_embedded.result
10.98
KB
-rw-r--r--
memory_bitdata.result
168
B
-rw-r--r--
memory_cursors.result
167
B
-rw-r--r--
memory_func_view.result
301.07
KB
-rw-r--r--
memory_storedproc_02.result
36.33
KB
-rw-r--r--
memory_storedproc_03.result
15.35
KB
-rw-r--r--
memory_storedproc_06.result
13.35
KB
-rw-r--r--
memory_storedproc_07.result
7.82
KB
-rw-r--r--
memory_storedproc_08.result
20.59
KB
-rw-r--r--
memory_storedproc_10.result
13.26
KB
-rw-r--r--
memory_trig_0102.result
15.1
KB
-rw-r--r--
memory_trig_03.result
25.7
KB
-rw-r--r--
memory_trig_03e.result
49.44
KB
-rw-r--r--
memory_trig_0407.result
15.45
KB
-rw-r--r--
memory_trig_08.result
18.44
KB
-rw-r--r--
memory_trig_09.result
10.02
KB
-rw-r--r--
memory_trig_1011ext.result
11.81
KB
-rw-r--r--
memory_views.result
580.77
KB
-rw-r--r--
myisam_bitdata.result
168
B
-rw-r--r--
myisam_cursors.result
167
B
-rw-r--r--
myisam_func_view.result
301.07
KB
-rw-r--r--
myisam_storedproc_02.result
36.33
KB
-rw-r--r--
myisam_storedproc_03.result
15.35
KB
-rw-r--r--
myisam_storedproc_06.result
13.35
KB
-rw-r--r--
myisam_storedproc_07.result
7.82
KB
-rw-r--r--
myisam_storedproc_08.result
20.59
KB
-rw-r--r--
myisam_storedproc_10.result
13.26
KB
-rw-r--r--
myisam_trig_0102.result
15.1
KB
-rw-r--r--
myisam_trig_03.result
25.7
KB
-rw-r--r--
myisam_trig_03e.result
49.44
KB
-rw-r--r--
myisam_trig_0407.result
15.45
KB
-rw-r--r--
myisam_trig_08.result
18.44
KB
-rw-r--r--
myisam_trig_09.result
10.02
KB
-rw-r--r--
myisam_trig_1011ext.result
11.81
KB
-rw-r--r--
myisam_views-big.result
595.72
KB
-rw-r--r--
ndb_bitdata.result
117
B
-rw-r--r--
ndb_cursors.result
116
B
-rw-r--r--
ndb_func_view.result
301.02
KB
-rw-r--r--
ndb_storedproc_02.result
36.28
KB
-rw-r--r--
ndb_storedproc_03.result
15.3
KB
-rw-r--r--
ndb_storedproc_06.result
13.38
KB
-rw-r--r--
ndb_storedproc_07.result
7.77
KB
-rw-r--r--
ndb_storedproc_08.result
20.03
KB
-rw-r--r--
ndb_storedproc_10.result
13.21
KB
-rw-r--r--
ndb_trig_0102.result
15.05
KB
-rw-r--r--
ndb_trig_03.result
25.65
KB
-rw-r--r--
ndb_trig_03e.result
50.97
KB
-rw-r--r--
ndb_trig_0407.result
15.4
KB
-rw-r--r--
ndb_trig_08.result
18.39
KB
-rw-r--r--
ndb_trig_09.result
9.97
KB
-rw-r--r--
ndb_trig_1011ext.result
11.77
KB
-rw-r--r--
ndb_views.result
580.63
KB
-rw-r--r--
processlist_priv_no_prot.resul...
28.85
KB
-rw-r--r--
processlist_priv_ps.result
28.88
KB
-rw-r--r--
processlist_val_no_prot.result
91.88
KB
-rw-r--r--
processlist_val_ps.result
91.89
KB
-rw-r--r--
storedproc.result
927.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) YES NULL 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) DEFAULT NULL, `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) YES NULL 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' NULL db_datadict t1 f1 INSERT NO 'testuser1'@'localhost' NULL db_datadict t1 f1 SELECT NO 'testuser1'@'localhost' NULL db_datadict t1 f2 UPDATE NO 'testuser1'@'localhost' NULL db_datadict t1 f3 SELECT NO 'testuser2'@'localhost' NULL db_datadict t1 f2 SELECT NO 'testuser3'@'localhost' NULL 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' NULL db_datadict t1 f1 INSERT YES 'testuser1'@'localhost' NULL db_datadict t1 f1 SELECT YES 'testuser1'@'localhost' NULL db_datadict t1 f2 UPDATE YES 'testuser1'@'localhost' NULL db_datadict t1 f3 SELECT YES 'testuser1'@'localhost' NULL db_datadict t1 f3 UPDATE YES 'testuser2'@'localhost' NULL db_datadict t1 f2 SELECT NO 'testuser3'@'localhost' NULL 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' NULL db_datadict t1 f1 INSERT YES 'testuser1'@'localhost' NULL db_datadict t1 f1 SELECT YES 'testuser1'@'localhost' NULL db_datadict t1 f2 UPDATE YES 'testuser1'@'localhost' NULL db_datadict t1 f3 SELECT YES 'testuser1'@'localhost' NULL 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' NULL 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' NULL db_datadict t1 INSERT YES 'testuser3'@'localhost' NULL 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' NULL db_datadict ALTER NO 'testuser3'@'localhost' NULL db_datadict ALTER ROUTINE NO 'testuser3'@'localhost' NULL db_datadict CREATE NO 'testuser3'@'localhost' NULL db_datadict CREATE ROUTINE NO 'testuser3'@'localhost' NULL db_datadict CREATE TEMPORARY TABLES NO 'testuser3'@'localhost' NULL db_datadict CREATE VIEW NO 'testuser3'@'localhost' NULL db_datadict DELETE NO 'testuser3'@'localhost' NULL db_datadict DROP NO 'testuser3'@'localhost' NULL db_datadict EVENT NO 'testuser3'@'localhost' NULL db_datadict EXECUTE NO 'testuser3'@'localhost' NULL db_datadict INDEX NO 'testuser3'@'localhost' NULL db_datadict INSERT NO 'testuser3'@'localhost' NULL db_datadict LOCK TABLES NO 'testuser3'@'localhost' NULL db_datadict REFERENCES NO 'testuser3'@'localhost' NULL db_datadict SELECT NO 'testuser3'@'localhost' NULL db_datadict SHOW VIEW NO 'testuser3'@'localhost' NULL db_datadict TRIGGER NO 'testuser3'@'localhost' NULL 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' NULL 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' NULL 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' NULL db_datadict t1 f1 SELECT NO 'testuser2'@'localhost' NULL db_datadict t1 f2 SELECT NO 'testuser2'@'localhost' NULL 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' NULL db_datadict my_table f1 SELECT NO 'testuser1'@'localhost' NULL 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' NULL db_datadict my_table f1 SELECT NO 'testuser1'@'localhost' NULL 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' NULL db_datadict my_table f1 SELECT NO 'testuser1'@'localhost' NULL db_datadict my_table f1 UPDATE NO 'testuser1'@'localhost' NULL 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' NULL db_datadict my_table f1 SELECT NO 'testuser1'@'localhost' NULL db_datadict my_table f1 UPDATE NO 'testuser1'@'localhost' NULL 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' NULL db_datadict my_table f1 SELECT NO 'testuser1'@'localhost' NULL db_datadict my_table f1 UPDATE NO 'testuser1'@'localhost' NULL 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' NULL db_datadict my_table f1 SELECT NO 'testuser1'@'localhost' NULL db_datadict my_table f1 UPDATE NO 'testuser1'@'localhost' NULL 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' NULL db_datadict my_table f1 SELECT NO 'testuser1'@'localhost' NULL db_datadict my_table f1 UPDATE NO 'testuser1'@'localhost' NULL 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' NULL db_datadict my_table f1 SELECT NO 'testuser1'@'localhost' NULL db_datadict my_table f1 UPDATE NO 'testuser1'@'localhost' NULL 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