mirror of
https://github.com/MariaDB/server.git
synced 2026-10-23 18:49:29 +03:00
if a user tries to access a table or a database they have no priivleges on, the error is alwaus "access denied", independently from whether the object exists or not. Do the same for columns.
68 lines
1.4 KiB
Plaintext
68 lines
1.4 KiB
Plaintext
set @old_debug= @@debug_dbug;
|
|
create user user_1;
|
|
show grants for user_1;
|
|
Grants for user_1@%
|
|
GRANT USAGE ON *.* TO `user_1`@`%`
|
|
# create user
|
|
create database d;
|
|
use d;
|
|
|
|
#Completely Invisible
|
|
set debug_dbug= "+d,test_completely_invisible";
|
|
create table t1(a int);
|
|
insert into t1 values(1);
|
|
select a,invisible from t1;
|
|
a invisible
|
|
1 9
|
|
set debug_dbug=@old_debug;
|
|
grant insert(a) on t1 to user_1;
|
|
grant update(a) on t1 to user_1;
|
|
grant select(a) on t1 to user_1;
|
|
grant delete on t1 to user_1;
|
|
connect con1, localhost, user_1,,d;
|
|
connection con1;
|
|
select user();
|
|
user()
|
|
user_1@localhost
|
|
select * from t1;
|
|
a
|
|
1
|
|
insert into t1 values(2);
|
|
select * from t1;
|
|
a
|
|
1
|
|
2
|
|
insert into t1(a) values(3);
|
|
select * from t1;
|
|
a
|
|
1
|
|
2
|
|
3
|
|
select invisible,a from t1;
|
|
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for column 'invisible' in table 't1'
|
|
delete from t1 where a =1;
|
|
update t1 set a=1 where a=3;
|
|
select * from t1;
|
|
a
|
|
2
|
|
1
|
|
connection default;
|
|
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user_1;
|
|
connection con1;
|
|
select * from t1;
|
|
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `d`.`t1`
|
|
select invisible from t1;
|
|
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `d`.`t1`
|
|
disconnect con1;
|
|
|
|
#Final Cleanup
|
|
connection default;
|
|
set debug_dbug= "+d,test_completely_invisible";
|
|
select a,invisible from t1;
|
|
a invisible
|
|
2 9
|
|
1 9
|
|
drop user user_1;
|
|
drop database d;
|
|
set @old_debug= @@debug_dbug;
|