You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

157 lines
5.9 KiB

  1. SET NAMES binary;
  2. drop table if exists t1;
  3. delete from mysql.user where user like 'mysqltest\_%';
  4. delete from mysql.db where user like 'mysqltest\_%';
  5. delete from mysql.tables_priv where user like 'mysqltest\_%';
  6. delete from mysql.columns_priv where user like 'mysqltest\_%';
  7. flush privileges;
  8. create user mysqltest_1@localhost;
  9. grant create user on *.* to mysqltest_1@localhost;
  10. grant select on `my\_1`.* to mysqltest_1@localhost with grant option;
  11. grant select on `my\_1`.* to mysqltest_2@localhost;
  12. ERROR 42000: You are not allowed to create a user with GRANT
  13. create user mysqltest_2@localhost;
  14. delete from mysql.user where user like 'mysqltest\_%';
  15. delete from mysql.db where user like 'mysqltest\_%';
  16. delete from mysql.tables_priv where user like 'mysqltest\_%';
  17. delete from mysql.columns_priv where user like 'mysqltest\_%';
  18. flush privileges;
  19. grant select on test.* to CUser@localhost;
  20. grant select on test.* to CUser@LOCALHOST;
  21. flush privileges;
  22. SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
  23. user host
  24. CUser LOCALHOST
  25. CUser localhost
  26. SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser' order by 1,2;
  27. user host db select_priv
  28. CUser LOCALHOST test Y
  29. CUser localhost test Y
  30. REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'CUser'@'LOCALHOST';
  31. flush privileges;
  32. SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
  33. user host
  34. CUser LOCALHOST
  35. CUser localhost
  36. SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser' order by 1,2;
  37. user host db select_priv
  38. CUser localhost test Y
  39. REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'CUser'@'localhost';
  40. flush privileges;
  41. SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
  42. user host
  43. CUser LOCALHOST
  44. CUser localhost
  45. SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser' order by 1,2;
  46. user host db select_priv
  47. DROP USER CUser@localhost;
  48. DROP USER CUser@LOCALHOST;
  49. create table t1 (a int);
  50. grant select on test.t1 to CUser@localhost;
  51. grant select on test.t1 to CUser@LOCALHOST;
  52. flush privileges;
  53. SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
  54. user host
  55. CUser LOCALHOST
  56. CUser localhost
  57. SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
  58. user host db Table_name Table_priv Column_priv
  59. CUser LOCALHOST test t1 Select
  60. CUser localhost test t1 Select
  61. REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'CUser'@'LOCALHOST';
  62. flush privileges;
  63. SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
  64. user host
  65. CUser LOCALHOST
  66. CUser localhost
  67. SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
  68. user host db Table_name Table_priv Column_priv
  69. CUser localhost test t1 Select
  70. REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'CUser'@'localhost';
  71. flush privileges;
  72. SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
  73. user host
  74. CUser LOCALHOST
  75. CUser localhost
  76. SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
  77. user host db Table_name Table_priv Column_priv
  78. DROP USER CUser@localhost;
  79. DROP USER CUser@LOCALHOST;
  80. grant select(a) on test.t1 to CUser@localhost;
  81. grant select(a) on test.t1 to CUser@LOCALHOST;
  82. flush privileges;
  83. SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
  84. user host
  85. CUser LOCALHOST
  86. CUser localhost
  87. SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
  88. user host db Table_name Table_priv Column_priv
  89. CUser LOCALHOST test t1 Select
  90. CUser localhost test t1 Select
  91. REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'CUser'@'LOCALHOST';
  92. flush privileges;
  93. SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
  94. user host
  95. CUser LOCALHOST
  96. CUser localhost
  97. SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
  98. user host db Table_name Table_priv Column_priv
  99. CUser localhost test t1 Select
  100. REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'CUser'@'localhost';
  101. flush privileges;
  102. SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
  103. user host
  104. CUser LOCALHOST
  105. CUser localhost
  106. SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
  107. user host db Table_name Table_priv Column_priv
  108. DROP USER CUser@localhost;
  109. DROP USER CUser@LOCALHOST;
  110. drop table t1;
  111. grant select on test.* to CUser2@localhost;
  112. grant select on test.* to CUser2@LOCALHOST;
  113. flush privileges;
  114. SELECT user, host FROM mysql.user where user = 'CUser2' order by 1,2;
  115. user host
  116. CUser2 LOCALHOST
  117. CUser2 localhost
  118. SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser2' order by 1,2;
  119. user host db select_priv
  120. CUser2 LOCALHOST test Y
  121. CUser2 localhost test Y
  122. REVOKE SELECT ON test.* FROM 'CUser2'@'LOCALHOST';
  123. flush privileges;
  124. SELECT user, host FROM mysql.user where user = 'CUser2' order by 1,2;
  125. user host
  126. CUser2 LOCALHOST
  127. CUser2 localhost
  128. SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser2' order by 1,2;
  129. user host db select_priv
  130. CUser2 localhost test Y
  131. REVOKE SELECT ON test.* FROM 'CUser2'@'localhost';
  132. flush privileges;
  133. SELECT user, host FROM mysql.user where user = 'CUser2' order by 1,2;
  134. user host
  135. CUser2 LOCALHOST
  136. CUser2 localhost
  137. SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser2' order by 1,2;
  138. user host db select_priv
  139. DROP USER CUser2@localhost;
  140. DROP USER CUser2@LOCALHOST;
  141. CREATE DATABASE mysqltest_1;
  142. CREATE TABLE mysqltest_1.t1 (a INT);
  143. CREATE USER 'mysqltest1'@'%';
  144. GRANT SELECT, UPDATE ON `mysqltest_1`.* TO 'mysqltest1'@'%';
  145. REVOKE SELECT ON `mysqltest_1`.* FROM 'mysqltest1'@'%';
  146. GRANT SELECT, UPDATE ON `mysqltest\_1`.* TO 'mysqltest1'@'%';
  147. FLUSH PRIVILEGES;
  148. SHOW GRANTS;
  149. Grants for mysqltest1@%
  150. GRANT USAGE ON *.* TO 'mysqltest1'@'%'
  151. GRANT SELECT, UPDATE ON `mysqltest\_1`.* TO 'mysqltest1'@'%'
  152. GRANT UPDATE ON `mysqltest_1`.* TO 'mysqltest1'@'%'
  153. SELECT * FROM mysqltest_1.t1;
  154. a
  155. DROP USER 'mysqltest1'@'%';
  156. DROP DATABASE mysqltest_1;
  157. End of 5.0 tests