Files
tidb/tests/integrationtest/r/executor/grant.result
2025-11-14 13:32:11 +00:00

341 lines
17 KiB
Plaintext

drop user if exists 'testWithGrant'@'localhost';
CREATE USER 'testWithGrant'@'localhost' IDENTIFIED BY '123';
SELECT * FROM mysql.db WHERE User="testWithGrant" and host="localhost";
Host DB User Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Grant_priv References_priv Index_priv Alter_priv Create_tmp_table_priv Lock_tables_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Execute_priv Event_priv Trigger_priv
GRANT select ON executor__grant.* TO 'testWithGrant'@'localhost' WITH GRANT OPTION;
SELECT grant_priv FROM mysql.DB WHERE User="testWithGrant" and host="localhost" and db="executor__grant";
grant_priv
Y
drop user if exists 'testWithGrant1';
CREATE USER 'testWithGrant1';
SELECT grant_priv FROM mysql.user WHERE User="testWithGrant1";
grant_priv
N
GRANT ALL ON *.* TO 'testWithGrant1';
SELECT grant_priv FROM mysql.user WHERE User="testWithGrant1";
grant_priv
N
GRANT ALL ON *.* TO 'testWithGrant1' WITH GRANT OPTION;
SELECT grant_priv FROM mysql.user WHERE User="testWithGrant1";
grant_priv
Y
drop user if exists 'dduser'@'%';
drop DATABASE if exists `dddb_%`;
CREATE USER 'dduser'@'%' IDENTIFIED by '123456';
CREATE DATABASE `dddb_%`;
CREATE table `dddb_%`.`te%` (id int);
GRANT ALL PRIVILEGES ON `dddb_%`.* TO 'dduser'@'%';
GRANT ALL PRIVILEGES ON `dddb_%`.`te%` to 'dduser'@'%';
DROP USER IF EXISTS 'test'@'%';
SET sql_mode='NO_AUTO_CREATE_USER';
GRANT ALL PRIVILEGES ON *.* to 'test'@'%' IDENTIFIED BY 'xxx';
Error 1410 (42000): You are not allowed to create a user with GRANT
set sql_mode=default;
DROP USER IF EXISTS 'test'@'%';
SET SQL_MODE='';
GRANT ALL PRIVILEGES ON *.* to 'test'@'%' IDENTIFIED BY 'xxx';
SELECT user FROM mysql.user WHERE user='test' and host='%';
user
test
DROP USER IF EXISTS 'test'@'%';
GRANT ALL PRIVILEGES ON *.* to 'test'@'%';
SELECT user, plugin FROM mysql.user WHERE user='test' and host='%';
user plugin
test mysql_native_password
DROP USER IF EXISTS 'test'@'%';
set sql_mode=default;
CREATE USER '1234567890abcdefGHIKL1234567890abcdefGHIKL@localhost';
Error 1470 (HY000): String '1234567890abcdefGHIKL1234567890abcdefGHIKL@localhost' is too long for user name (should be no longer than 32)
CREATE USER 'some_user_name@host_1234567890abcdefghij1234567890abcdefghij1234567890abcdefghij1234567890abcdefghij1234567890abcdefghij1234567890abcdefghij1234567890abcdefghij1234567890abcdefghij1234567890abcdefghij1234567890abcdefghij1234567890abcdefghij1234567890abcdefghij1234567890X';
Error 1470 (HY000): String 'some_user_name@host_1234567890abcdefghij1234567890abcdefghij1234567890' is too long for user name (should be no longer than 32)
drop role if exists r1, r2, r3, r4;
create role r1, r2, r3;
create table executor__grant.testatomic(x int);
grant update, select, insert, delete on *.* to r1, r2, r4;
Error 1410 (42000): You are not allowed to create a user with GRANT
select Update_priv, Select_priv, Insert_priv, Delete_priv from mysql.user where user in ('r1', 'r2', 'r3', 'r4') and host = "%";
Update_priv Select_priv Insert_priv Delete_priv
N N N N
N N N N
N N N N
grant update, select, insert, delete on *.* to r1, r2, r3;
revoke all on *.* from r1, r2, r4, r3;
Error 1105 (HY000): Unknown user: r4@%
select Update_priv, Select_priv, Insert_priv, Delete_priv from mysql.user where user in ('r1', 'r2', 'r3', 'r4') and host = "%";
Update_priv Select_priv Insert_priv Delete_priv
Y Y Y Y
Y Y Y Y
Y Y Y Y
grant update, select, insert, delete on executor__grant.* to r1, r2, r4;
Error 1410 (42000): You are not allowed to create a user with GRANT
select Update_priv, Select_priv, Insert_priv, Delete_priv from mysql.db where user in ('r1', 'r2', 'r3', 'r4') and host = "%";
Update_priv Select_priv Insert_priv Delete_priv
grant update, select, insert, delete on executor__grant.* to r1, r2, r3;
revoke all on *.* from r1, r2, r4, r3;
Error 1105 (HY000): Unknown user: r4@%
select Update_priv, Select_priv, Insert_priv, Delete_priv from mysql.db where user in ('r1', 'r2', 'r3', 'r4') and host = "%";
Update_priv Select_priv Insert_priv Delete_priv
Y Y Y Y
Y Y Y Y
Y Y Y Y
grant update, select, insert, delete on executor__grant.testatomic to r1, r2, r4;
Error 1410 (42000): You are not allowed to create a user with GRANT
select Table_priv from mysql.tables_priv where user in ('r1', 'r2', 'r3', 'r4') and host = "%";
Table_priv
grant update, select, insert, delete on executor__grant.testatomic to r1, r2, r3;
revoke all on *.* from r1, r2, r4, r3;
Error 1105 (HY000): Unknown user: r4@%
select Table_priv from mysql.tables_priv where user in ('r1', 'r2', 'r3', 'r4') and host = "%";
Table_priv
Select,Insert,Update,Delete
Select,Insert,Update,Delete
Select,Insert,Update,Delete
drop role if exists r1, r2, r3, r4;
drop table executor__grant.testatomic;
DROP USER IF EXISTS 'test'@'%';
CREATE USER 'test'@'%' IDENTIFIED BY 'test';
GRANT SELECT ON executor__grant.* to 'test';
SELECT user,host FROM mysql.user WHERE user='test' and host='%';
user host
test %
SET SQL_MODE='ANSI_QUOTES';
GRANT ALL PRIVILEGES ON video_ulimit.* TO web@'%' IDENTIFIED BY 'eDrkrhZ>l2sV';
REVOKE ALL PRIVILEGES ON video_ulimit.* FROM web@'%';
DROP USER IF EXISTS 'web'@'%';
set sql_mode=default;
DROP USER if exists 'ssl_auser'@'%';
DROP USER if exists 'ssl_buser'@'%';
DROP USER if exists 'ssl_cuser'@'%';
DROP USER if exists 'ssl_duser'@'%';
DROP USER if exists 'ssl_euser'@'%';
DROP USER if exists 'ssl_fuser'@'%';
DROP USER if exists 'ssl_guser'@'%';
drop user if exists 'u1'@'%';
drop user if exists 'u2'@'%';
drop user if exists 'u3'@'%';
CREATE USER 'ssl_auser'@'%' require issuer '/CN=TiDB admin/OU=TiDB/O=PingCAP/L=San Francisco/ST=California/C=US' subject '/CN=tester1/OU=TiDB/O=PingCAP.Inc/L=Haidian/ST=Beijing/C=ZH' cipher 'AES128-GCM-SHA256';
CREATE USER 'ssl_buser'@'%' require subject '/CN=tester1/OU=TiDB/O=PingCAP.Inc/L=Haidian/ST=Beijing/C=ZH' cipher 'AES128-GCM-SHA256';
CREATE USER 'ssl_cuser'@'%' require cipher 'AES128-GCM-SHA256';
CREATE USER 'ssl_duser'@'%';
CREATE USER 'ssl_euser'@'%' require none;
CREATE USER 'ssl_fuser'@'%' require ssl;
CREATE USER 'ssl_guser'@'%' require x509;
select * from mysql.global_priv where `user` like 'ssl_%';
Host User Priv
% ssl_auser {"ssl_type":3,"ssl_cipher":"AES128-GCM-SHA256","x509_issuer":"/CN=TiDB admin/OU=TiDB/O=PingCAP/L=San Francisco/ST=California/C=US","x509_subject":"/CN=tester1/OU=TiDB/O=PingCAP.Inc/L=Haidian/ST=Beijing/C=ZH"}
% ssl_buser {"ssl_type":3,"ssl_cipher":"AES128-GCM-SHA256","x509_subject":"/CN=tester1/OU=TiDB/O=PingCAP.Inc/L=Haidian/ST=Beijing/C=ZH"}
% ssl_cuser {"ssl_type":3,"ssl_cipher":"AES128-GCM-SHA256"}
% ssl_duser {}
% ssl_euser {}
% ssl_fuser {"ssl_type":1}
% ssl_guser {"ssl_type":2}
CREATE USER 'u1'@'%';
GRANT ALL ON *.* TO 'u1'@'%' require issuer '/CN=TiDB admin/OU=TiDB/O=PingCAP/L=San Francisco/ST=California/C=US' and subject '/CN=tester1/OU=TiDB/O=PingCAP.Inc/L=Haidian/ST=Beijing/C=ZH';
select priv from mysql.global_priv where `Host` = '%' and `User` = 'u1';
priv
{"ssl_type":3,"x509_issuer":"/CN=TiDB admin/OU=TiDB/O=PingCAP/L=San Francisco/ST=California/C=US","x509_subject":"/CN=tester1/OU=TiDB/O=PingCAP.Inc/L=Haidian/ST=Beijing/C=ZH"}
GRANT ALL ON *.* TO 'u1'@'%' require cipher 'AES128-GCM-SHA256';
select priv from mysql.global_priv where `Host` = '%' and `User` = 'u1';
priv
{"ssl_type":3,"ssl_cipher":"AES128-GCM-SHA256"}
GRANT select ON *.* TO 'u1'@'%';
select priv from mysql.global_priv where `Host` = '%' and `User` = 'u1';
priv
{"ssl_type":3,"ssl_cipher":"AES128-GCM-SHA256"}
GRANT ALL ON *.* TO 'u1'@'%' require none;
select priv from mysql.global_priv where `Host` = '%' and `User` = 'u1';
priv
{}
CREATE USER 'u2'@'%';
alter user 'u2'@'%' require ssl;
select priv from mysql.global_priv where `Host` = '%' and `User` = 'u2';
priv
{"ssl_type":1}
alter user 'u2'@'%' require x509;
select priv from mysql.global_priv where `Host` = '%' and `User` = 'u2';
priv
{"ssl_type":2}
alter user 'u2'@'%' require issuer '/CN=TiDB admin/OU=TiDB/O=PingCAP/L=San Francisco/ST=California/C=US' subject '/CN=tester1/OU=TiDB/O=PingCAP.Inc/L=Haidian/ST=Beijing/C=ZH' cipher 'AES128-GCM-SHA256';
select priv from mysql.global_priv where `Host` = '%' and `User` = 'u2';
priv
{"ssl_type":3,"ssl_cipher":"AES128-GCM-SHA256","x509_issuer":"/CN=TiDB admin/OU=TiDB/O=PingCAP/L=San Francisco/ST=California/C=US","x509_subject":"/CN=tester1/OU=TiDB/O=PingCAP.Inc/L=Haidian/ST=Beijing/C=ZH"}
alter user 'u2'@'%' require none;
select priv from mysql.global_priv where `Host` = '%' and `User` = 'u2';
priv
{}
CREATE USER 'u3'@'%' require issuer '/CN=TiDB admin/OU=TiDB/O=PingCAP/L=San Francisco/ST=California/C=US' subject '/CN=tester1/OU=TiDB/O=PingCAP.Inc/L=Haidian/ST=Beijing/C=ZH' cipher 'AES128-GCM-SHA256';
show create user 'u3';
CREATE USER for u3@%
CREATE USER 'u3'@'%' IDENTIFIED WITH 'mysql_native_password' AS '' REQUIRE CIPHER 'AES128-GCM-SHA256' ISSUER '/CN=TiDB admin/OU=TiDB/O=PingCAP/L=San Francisco/ST=California/C=US' SUBJECT '/CN=tester1/OU=TiDB/O=PingCAP.Inc/L=Haidian/ST=Beijing/C=ZH' PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
CREATE USER 'u4'@'%' require issuer 'CN=TiDB,OU=PingCAP';
Error 1105 (HY000): invalid X509_NAME input: CN=TiDB,OU=PingCAP
CREATE USER 'u5'@'%' require subject '/CN=TiDB\OU=PingCAP';
Error 1105 (HY000): invalid X509_NAME input: /CN=TiDBOU=PingCAP
CREATE USER 'u6'@'%' require subject '/CN=TiDB\NC=PingCAP';
Error 1105 (HY000): invalid X509_NAME input: /CN=TiDBNC=PingCAP
CREATE USER 'u7'@'%' require cipher 'AES128-GCM-SHA1';
Error 1105 (HY000): Unsupported cipher suite: AES128-GCM-SHA1
CREATE USER 'u8'@'%' require subject '/CN';
Error 1105 (HY000): invalid X509_NAME input: /CN
CREATE USER 'u9'@'%' require cipher 'TLS_AES_256_GCM_SHA384' cipher 'RC4-SHA';
Error 1105 (HY000): Duplicate require CIPHER clause
CREATE USER 'u9'@'%' require issuer 'CN=TiDB,OU=PingCAP' issuer 'CN=TiDB,OU=PingCAP2';
Error 1105 (HY000): Duplicate require ISSUER clause
CREATE USER 'u9'@'%' require subject '/CN=TiDB\OU=PingCAP' subject '/CN=TiDB\OU=PingCAP2';
Error 1105 (HY000): Duplicate require SUBJECT clause
CREATE USER 'u9'@'%' require ssl ssl;
Error 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your TiDB version for the right syntax to use line 1 column 36 near "ssl"
CREATE USER 'u9'@'%' require x509 x509;
Error 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your TiDB version for the right syntax to use line 1 column 38 near "x509"
drop user if exists 'maint_auth_str1'@'%';
CREATE USER 'maint_auth_str1'@'%' IDENTIFIED BY 'foo';
SELECT authentication_string FROM mysql.user WHERE `Host` = '%' and `User` = 'maint_auth_str1';
authentication_string
*F3A2A51A9B0F2BE2468926B4132313728C250DBF
ALTER USER 'maint_auth_str1'@'%' REQUIRE SSL;
SELECT authentication_string FROM mysql.user WHERE `Host` = '%' and `User` = 'maint_auth_str1';
authentication_string
*F3A2A51A9B0F2BE2468926B4132313728C250DBF
drop table if exists xx;
drop user if exists 'sync_ci_data'@'%';
create table xx (id int);
CREATE USER 'sync_ci_data'@'%' IDENTIFIED BY 'sNGNQo12fEHe0n3vU';
GRANT USAGE ON *.* TO 'sync_ci_data'@'%';
GRANT USAGE ON sync_ci_data.* TO 'sync_ci_data'@'%';
GRANT USAGE ON executor__grant.* TO 'sync_ci_data'@'%';
GRANT USAGE ON executor__grant.xx TO 'sync_ci_data'@'%';
drop user if exists issue27867;
create user issue27867;
grant all on performance_schema.* to issue27867;
Error 1044 (42000): Access denied for user 'root'@'%' to database 'performance_schema'
grant all on PERFormanCE_scHemA.* to issue27867;
Error 1044 (42000): Access denied for user 'root'@'%' to database 'PERFormanCE_scHemA'
grant select on performance_schema.* to issue27867;
grant insert on performance_schema.* to issue27867;
Error 1044 (42000): Access denied for user 'root'@'%' to database 'performance_schema'
grant update on performance_schema.* to issue27867;
Error 1044 (42000): Access denied for user 'root'@'%' to database 'performance_schema'
grant delete on performance_schema.* to issue27867;
Error 1044 (42000): Access denied for user 'root'@'%' to database 'performance_schema'
grant drop on performance_schema.* to issue27867;
Error 1044 (42000): Access denied for user 'root'@'%' to database 'performance_schema'
grant lock tables on performance_schema.* to issue27867;
Error 1044 (42000): Access denied for user 'root'@'%' to database 'performance_schema'
grant create on performance_schema.* to issue27867;
Error 1044 (42000): Access denied for user 'root'@'%' to database 'performance_schema'
grant references on performance_schema.* to issue27867;
Error 1044 (42000): Access denied for user 'root'@'%' to database 'performance_schema'
grant alter on PERFormAnCE_scHemA.* to issue27867;
Error 1044 (42000): Access denied for user 'root'@'%' to database 'PERFormAnCE_scHemA'
grant execute on performance_schema.* to issue27867;
Error 1044 (42000): Access denied for user 'root'@'%' to database 'performance_schema'
grant index on PERFormanCE_scHemA.* to issue27867;
Error 1044 (42000): Access denied for user 'root'@'%' to database 'PERFormanCE_scHemA'
grant create view on performance_schema.* to issue27867;
Error 1044 (42000): Access denied for user 'root'@'%' to database 'performance_schema'
grant show view on performance_schema.* to issue27867;
Error 1044 (42000): Access denied for user 'root'@'%' to database 'performance_schema'
drop user issue27867;
drop user if exists dyn;
create user dyn;
GRANT BACKUP_ADMIN ON executor__grant.* TO dyn;
Error 3619 (HY000): Illegal privilege level specified for BACKUP_ADMIN
GRANT BOGUS_GRANT ON *.* TO dyn;
Error 3929 (HY000): Dynamic privilege 'BOGUS_GRANT' is not registered with the server.
GRANT BACKUP_Admin ON *.* TO dyn;
SELECT * FROM mysql.global_grants WHERE `Host` = '%' AND `User` = 'dyn' ORDER BY user,host,priv,with_grant_option;
USER HOST PRIV WITH_GRANT_OPTION
dyn % BACKUP_ADMIN N
GRANT SYSTEM_VARIABLES_ADMIN, BACKUP_ADMIN ON *.* TO dyn;
SELECT * FROM mysql.global_grants WHERE `Host` = '%' AND `User` = 'dyn' ORDER BY user,host,priv,with_grant_option;
USER HOST PRIV WITH_GRANT_OPTION
dyn % BACKUP_ADMIN N
dyn % SYSTEM_VARIABLES_ADMIN N
GRANT ROLE_ADMIN, BACKUP_ADMIN ON *.* TO dyn WITH GRANT OPTION;
SELECT * FROM mysql.global_grants WHERE `Host` = '%' AND `User` = 'dyn' ORDER BY user,host,priv,with_grant_option;
USER HOST PRIV WITH_GRANT_OPTION
dyn % BACKUP_ADMIN Y
dyn % ROLE_ADMIN Y
dyn % SYSTEM_VARIABLES_ADMIN N
GRANT SYSTEM_VARIABLES_ADMIN, Select, ROLE_ADMIN ON *.* TO dyn;
SELECT Grant_Priv FROM mysql.user WHERE `Host` = '%' AND `User` = 'dyn';
Grant_Priv
N
SELECT WITH_GRANT_OPTION FROM mysql.global_grants WHERE `Host` = '%' AND `User` = 'dyn' AND Priv='SYSTEM_VARIABLES_ADMIN';
WITH_GRANT_OPTION
N
GRANT CONNECTION_ADMIN, Insert ON *.* TO dyn WITH GRANT OPTION;
SELECT Grant_Priv FROM mysql.user WHERE `Host` = '%' AND `User` = 'dyn';
Grant_Priv
Y
SELECT WITH_GRANT_OPTION FROM mysql.global_grants WHERE `Host` = '%' AND `User` = 'dyn' AND Priv='CONNECTION_ADMIN';
WITH_GRANT_OPTION
Y
drop user if exists u29302;
create user u29302;
grant create temporary tables on NotExistsD29302.NotExistsT29302 to u29302;
Error 1144 (42000): Illegal GRANT/REVOKE command; please consult the manual to see which privileges can be used
grant lock tables on executor__grant.NotExistsT29302 to u29302;
Error 1144 (42000): Illegal GRANT/REVOKE command; please consult the manual to see which privileges can be used
grant create temporary tables (NotExistsCol) on NotExistsD29302.NotExistsT29302 to u29302;
Error 1221 (HY000): Incorrect usage of COLUMN GRANT and NON-COLUMN PRIVILEGES
drop user u29302;
drop table if exists t1;
drop user if exists user_1@localhost;
CREATE USER user_1@localhost;
CREATE TABLE T1(f1 INT);
CREATE TABLE t1(f1 INT);
Error 1050 (42S01): Table 'executor__grant.t1' already exists
GRANT SELECT ON T1 to user_1@localhost;
GRANT SELECT ON t1 to user_1@localhost;
DROP USER IF EXISTS test;
CREATE USER test;
GRANT SELECT ON `mysql`.`db` TO test;
SELECT `Grantor` FROM `mysql`.`tables_priv` WHERE User = 'test';
Grantor
root@%
drop user if exists genius;
drop user if exists u29268;
create user genius;
select * from nonexist;
Error 1146 (42S02): Table 'executor__grant.nonexist' doesn't exist
grant Select,Insert on nonexist to 'genius';
Error 1146 (42S02): Table 'executor__grant.nonexist' doesn't exist
create table if not exists xx (id int);
grant Select,Insert on XX to 'genius';
grant Select,Insert on xx to 'genius';
grant Select,Update on executor__grant.xx to 'genius';
CREATE DATABASE d29268;
USE d29268;
CREATE USER u29268;
GRANT SELECT ON t29268 TO u29268;
Error 1146 (42S02): Table 'd29268.t29268' doesn't exist
GRANT DROP, INSERT ON t29268 TO u29268;
Error 1146 (42S02): Table 'd29268.t29268' doesn't exist
GRANT UPDATE, CREATE VIEW, SHOW VIEW ON t29268 TO u29268;
Error 1146 (42S02): Table 'd29268.t29268' doesn't exist
GRANT DELETE, REFERENCES, ALTER ON t29268 TO u29268;
Error 1146 (42S02): Table 'd29268.t29268' doesn't exist
GRANT CREATE ON t29268 TO u29268;
GRANT CREATE, SELECT ON t29268 TO u29268;
GRANT CREATE, DROP, INSERT ON t29268 TO u29268;
CREATE TABLE t29268 (c1 int);
INSERT INTO t29268 VALUES (1), (2);
SELECT c1 FROM t29268;
c1
1
2
DROP TABLE t29268;
GRANT ALL ON t29268 TO u29268;
DROP USER u29268;
DROP DATABASE IF EXISTS d29268;
use executor__grant;
drop table if exists t;
drop user if exists test_user;
create user test_user;
create temporary table t(id int);
grant select on t to test_user;
Error 1146 (42S02): Table 'executor__grant.t' doesn't exist
drop user test_user;
drop temporary table t;