📄 grant.test
字号:
# Test of GRANT commands# Grant tests not performed with embedded server-- source include/not_embedded.inc# Cleanup--disable_warningsdrop table if exists t1;drop database if exists mysqltest;--enable_warningsconnect (master,localhost,root,,);connection master;SET NAMES binary;## Test that SSL options works properly#delete from mysql.user where user='mysqltest_1';delete from mysql.db where user='mysqltest_1';flush privileges;grant select on mysqltest.* to mysqltest_1@localhost require cipher "EDH-RSA-DES-CBC3-SHA";show grants for mysqltest_1@localhost;grant delete on mysqltest.* to mysqltest_1@localhost;select * from mysql.user where user="mysqltest_1";show grants for mysqltest_1@localhost;revoke delete on mysqltest.* from mysqltest_1@localhost;show grants for mysqltest_1@localhost;grant select on mysqltest.* to mysqltest_1@localhost require NONE;show grants for mysqltest_1@localhost;grant USAGE on mysqltest.* to mysqltest_1@localhost require cipher "EDH-RSA-DES-CBC3-SHA" AND SUBJECT "testsubject" ISSUER "MySQL AB";show grants for mysqltest_1@localhost;revoke all privileges on mysqltest.* from mysqltest_1@localhost;show grants for mysqltest_1@localhost;delete from mysql.user where user='mysqltest_1';flush privileges;## Test of GRANTS specifying user limits#delete from mysql.user where user='mysqltest_1';flush privileges;grant usage on *.* to mysqltest_1@localhost with max_queries_per_hour 10;select * from mysql.user where user="mysqltest_1";show grants for mysqltest_1@localhost;grant usage on *.* to mysqltest_1@localhost with max_updates_per_hour 20 max_connections_per_hour 30;select * from mysql.user where user="mysqltest_1";show grants for mysqltest_1@localhost;# This is just to double check that one won't ignore results of selectsflush privileges;show grants for mysqltest_1@localhost;delete from mysql.user where user='mysqltest_1';flush privileges;## Test that the new db privileges are stored/retrieved correctly#grant CREATE TEMPORARY TABLES, LOCK TABLES on mysqltest.* to mysqltest_1@localhost;show grants for mysqltest_1@localhost;flush privileges;show grants for mysqltest_1@localhost;revoke CREATE TEMPORARY TABLES on mysqltest.* from mysqltest_1@localhost;show grants for mysqltest_1@localhost;grant ALL PRIVILEGES on mysqltest.* to mysqltest_1@localhost with GRANT OPTION;flush privileges;show grants for mysqltest_1@localhost;revoke LOCK TABLES, ALTER on mysqltest.* from mysqltest_1@localhost;show grants for mysqltest_1@localhost;revoke all privileges on mysqltest.* from mysqltest_1@localhost;delete from mysql.user where user='mysqltest_1';flush privileges;grant usage on test.* to mysqltest_1@localhost with grant option;show grants for mysqltest_1@localhost;delete from mysql.user where user='mysqltest_1';delete from mysql.db where user='mysqltest_1';delete from mysql.tables_priv where user='mysqltest_1';delete from mysql.columns_priv where user='mysqltest_1';flush privileges;--error 1141show grants for mysqltest_1@localhost;## Test what happens when you have same table and colum level grants#create table t1 (a int);GRANT select,update,insert on t1 to mysqltest_1@localhost;GRANT select (a), update (a),insert(a), references(a) on t1 to mysqltest_1@localhost;show grants for mysqltest_1@localhost;select table_priv,column_priv from mysql.tables_priv where user="mysqltest_1";REVOKE select (a), update on t1 from mysqltest_1@localhost;show grants for mysqltest_1@localhost;REVOKE select,update,insert,insert (a) on t1 from mysqltest_1@localhost;show grants for mysqltest_1@localhost;GRANT select,references on t1 to mysqltest_1@localhost;select table_priv,column_priv from mysql.tables_priv where user="mysqltest_1";grant all on test.* to mysqltest_3@localhost with grant option;revoke all on test.* from mysqltest_3@localhost;show grants for mysqltest_3@localhost;revoke grant option on test.* from mysqltest_3@localhost;show grants for mysqltest_3@localhost;grant all on test.t1 to mysqltest_2@localhost with grant option;revoke all on test.t1 from mysqltest_2@localhost;show grants for mysqltest_2@localhost;revoke grant option on test.t1 from mysqltest_2@localhost;show grants for mysqltest_2@localhost;delete from mysql.user where user='mysqltest_1' or user="mysqltest_2" or user="mysqltest_3";delete from mysql.db where user='mysqltest_1' or user="mysqltest_2" or user="mysqltest_3";delete from mysql.tables_priv where user='mysqltest_1' or user="mysqltest_2" or user="mysqltest_3";delete from mysql.columns_priv where user='mysqltest_1' or user="mysqltest_2" or user="mysqltest_3";flush privileges;drop table t1;## Test some error conditions#--error 1221GRANT FILE on mysqltest.* to mysqltest_1@localhost;select 1; -- To test that the previous command didn't cause problems## Bug #4898: User privileges depending on ORDER BY Settings of table db#insert into mysql.user (host, user) values ('localhost', 'test11');insert into mysql.db (host, db, user, select_priv) values ('localhost', 'a%', 'test11', 'Y'), ('localhost', 'ab%', 'test11', 'Y');alter table mysql.db order by db asc;flush privileges;show grants for test11@localhost;alter table mysql.db order by db desc;flush privileges;show grants for test11@localhost;delete from mysql.user where user='test11';delete from mysql.db where user='test11';## Bug#6123: GRANT USAGE inserts useless Db row#create database mysqltest1;grant usage on mysqltest1.* to test6123 identified by 'magic123';select host,db,user,select_priv,insert_priv from mysql.db where db="mysqltest1";delete from mysql.user where user='test6123';drop database mysqltest1;## Test for 'drop user', 'revoke privileges, grant' #create table t1 (a int);grant ALL PRIVILEGES on *.* to drop_user2@localhost with GRANT OPTION;show grants for drop_user2@localhost;revoke all privileges, grant option from drop_user2@localhost;drop user drop_user2@localhost;grant ALL PRIVILEGES on *.* to drop_user@localhost with GRANT OPTION;grant ALL PRIVILEGES on test.* to drop_user@localhost with GRANT OPTION;grant select(a) on test.t1 to drop_user@localhost;show grants for drop_user@localhost;## Bug3086#set sql_mode=ansi_quotes;show grants for drop_user@localhost;set sql_mode=default;set sql_quote_show_create=0;show grants for drop_user@localhost;set sql_mode="ansi_quotes";show grants for drop_user@localhost;set sql_quote_show_create=1;show grants for drop_user@localhost;set sql_mode="";show grants for drop_user@localhost;revoke all privileges, grant option from drop_user@localhost;show grants for drop_user@localhost;drop user drop_user@localhost;--error 1269revoke all privileges, grant option from drop_user@localhost;grant select(a) on test.t1 to drop_user1@localhost;grant select on test.t1 to drop_user2@localhost;grant select on test.* to drop_user3@localhost;grant select on *.* to drop_user4@localhost;# Drop user now implicitly revokes all privileges.drop user drop_user1@localhost, drop_user2@localhost, drop_user3@localhost,drop_user4@localhost;--error 1269revoke all privileges, grant option from drop_user1@localhost, drop_user2@localhost,drop_user3@localhost, drop_user4@localhost;--error 1396drop user drop_user1@localhost, drop_user2@localhost, drop_user3@localhost,drop_user4@localhost;drop table t1;grant usage on *.* to mysqltest_1@localhost identified by "password";grant select, update, insert on test.* to mysqltest_1@localhost;show grants for mysqltest_1@localhost;drop user mysqltest_1@localhost;## Bug #3403 Wrong encodin in SHOW GRANTS output#SET NAMES koi8r;CREATE DATABASE 履;USE 履;CREATE TABLE 粤
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -