mirror of
https://github.com/MariaDB/server.git
synced 2026-05-16 20:07:13 +02:00
added processing of view grants to table grants (BUG#9795)
mysql-test/r/grant.result: test of new table privileges mysql-test/r/system_mysql_db.result: added new table priveleges mysql-test/r/view_grant.result: error changed mysql-test/t/grant.test: test of new table privileges mysql-test/t/view_grant.test: error changed scripts/mysql_create_system_tables.sh: add new table privileges scripts/mysql_fix_privilege_tables.sql: fixed system tables fix script sql/sql_acl.h: fixed coding/decoding new tables grants
This commit is contained in:
parent
bf851ae2a0
commit
200f03fdd4
8 changed files with 198 additions and 6 deletions
|
|
@ -6,6 +6,7 @@
|
|||
# Cleanup
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
drop database if exists mysqltest;
|
||||
--enable_warnings
|
||||
|
||||
connect (master,localhost,root,,);
|
||||
|
|
@ -403,3 +404,69 @@ connection root;
|
|||
revoke all privileges on mysqltest.t1 from mysqltest_1@localhost;
|
||||
delete from mysql.user where user=_binary'mysqltest_1';
|
||||
drop database mysqltest;
|
||||
|
||||
#
|
||||
# check all new table priveleges
|
||||
#
|
||||
CREATE USER dummy@localhost;
|
||||
CREATE DATABASE mysqltest;
|
||||
CREATE TABLE mysqltest.dummytable (dummyfield INT);
|
||||
CREATE VIEW mysqltest.dummyview AS SELECT dummyfield FROM mysqltest.dummytable;
|
||||
GRANT ALL PRIVILEGES ON mysqltest.dummytable TO dummy@localhost;
|
||||
GRANT ALL PRIVILEGES ON mysqltest.dummyview TO dummy@localhost;
|
||||
SHOW GRANTS FOR dummy@localhost;
|
||||
use INFORMATION_SCHEMA;
|
||||
SELECT TABLE_SCHEMA, TABLE_NAME, GROUP_CONCAT(PRIVILEGE_TYPE ORDER BY
|
||||
PRIVILEGE_TYPE SEPARATOR ', ') AS PRIVILEGES FROM TABLE_PRIVILEGES WHERE GRANTEE
|
||||
= '\'dummy\'@\'localhost\'' GROUP BY TABLE_SCHEMA, TABLE_NAME;
|
||||
FLUSH PRIVILEGES;
|
||||
SHOW GRANTS FOR dummy@localhost;
|
||||
SELECT TABLE_SCHEMA, TABLE_NAME, GROUP_CONCAT(PRIVILEGE_TYPE ORDER BY
|
||||
PRIVILEGE_TYPE SEPARATOR ', ') AS PRIVILEGES FROM TABLE_PRIVILEGES WHERE GRANTEE
|
||||
= '\'dummy\'@\'localhost\'' GROUP BY TABLE_SCHEMA, TABLE_NAME;
|
||||
SHOW FIELDS FROM mysql.tables_priv;
|
||||
use test;
|
||||
REVOKE ALL PRIVILEGES, GRANT OPTION FROM dummy@localhost;
|
||||
DROP USER dummy@localhost;
|
||||
DROP DATABASE mysqltest;
|
||||
# check view only privileges
|
||||
CREATE USER dummy@localhost;
|
||||
CREATE DATABASE mysqltest;
|
||||
CREATE TABLE mysqltest.dummytable (dummyfield INT);
|
||||
CREATE VIEW mysqltest.dummyview AS SELECT dummyfield FROM mysqltest.dummytable;
|
||||
GRANT CREATE VIEW ON mysqltest.dummytable TO dummy@localhost;
|
||||
GRANT CREATE VIEW ON mysqltest.dummyview TO dummy@localhost;
|
||||
SHOW GRANTS FOR dummy@localhost;
|
||||
use INFORMATION_SCHEMA;
|
||||
SELECT TABLE_SCHEMA, TABLE_NAME, GROUP_CONCAT(PRIVILEGE_TYPE ORDER BY
|
||||
PRIVILEGE_TYPE SEPARATOR ', ') AS PRIVILEGES FROM TABLE_PRIVILEGES WHERE GRANTEE
|
||||
= '\'dummy\'@\'localhost\'' GROUP BY TABLE_SCHEMA, TABLE_NAME;
|
||||
FLUSH PRIVILEGES;
|
||||
SHOW GRANTS FOR dummy@localhost;
|
||||
SELECT TABLE_SCHEMA, TABLE_NAME, GROUP_CONCAT(PRIVILEGE_TYPE ORDER BY
|
||||
PRIVILEGE_TYPE SEPARATOR ', ') AS PRIVILEGES FROM TABLE_PRIVILEGES WHERE GRANTEE
|
||||
= '\'dummy\'@\'localhost\'' GROUP BY TABLE_SCHEMA, TABLE_NAME;
|
||||
use test;
|
||||
REVOKE ALL PRIVILEGES, GRANT OPTION FROM dummy@localhost;
|
||||
DROP USER dummy@localhost;
|
||||
DROP DATABASE mysqltest;
|
||||
CREATE USER dummy@localhost;
|
||||
CREATE DATABASE mysqltest;
|
||||
CREATE TABLE mysqltest.dummytable (dummyfield INT);
|
||||
CREATE VIEW mysqltest.dummyview AS SELECT dummyfield FROM mysqltest.dummytable;
|
||||
GRANT SHOW VIEW ON mysqltest.dummytable TO dummy@localhost;
|
||||
GRANT SHOW VIEW ON mysqltest.dummyview TO dummy@localhost;
|
||||
SHOW GRANTS FOR dummy@localhost;
|
||||
use INFORMATION_SCHEMA;
|
||||
SELECT TABLE_SCHEMA, TABLE_NAME, GROUP_CONCAT(PRIVILEGE_TYPE ORDER BY
|
||||
PRIVILEGE_TYPE SEPARATOR ', ') AS PRIVILEGES FROM TABLE_PRIVILEGES WHERE GRANTEE
|
||||
= '\'dummy\'@\'localhost\'' GROUP BY TABLE_SCHEMA, TABLE_NAME;
|
||||
FLUSH PRIVILEGES;
|
||||
SHOW GRANTS FOR dummy@localhost;
|
||||
SELECT TABLE_SCHEMA, TABLE_NAME, GROUP_CONCAT(PRIVILEGE_TYPE ORDER BY
|
||||
PRIVILEGE_TYPE SEPARATOR ', ') AS PRIVILEGES FROM TABLE_PRIVILEGES WHERE GRANTEE
|
||||
= '\'dummy\'@\'localhost\'' GROUP BY TABLE_SCHEMA, TABLE_NAME;
|
||||
use test;
|
||||
REVOKE ALL PRIVILEGES, GRANT OPTION FROM dummy@localhost;
|
||||
DROP USER dummy@localhost;
|
||||
DROP DATABASE mysqltest;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue