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.

136 lines
4.5 KiB

  1. # Can't run with embedded server
  2. -- source include/not_embedded.inc
  3. # Test of GRANT commands
  4. SET NAMES binary;
  5. connect (master,localhost,root,,);
  6. connection master;
  7. # Cleanup
  8. --disable_warnings
  9. drop table if exists t1;
  10. --enable_warnings
  11. delete from mysql.user where user like 'mysqltest\_%';
  12. delete from mysql.db where user like 'mysqltest\_%';
  13. delete from mysql.tables_priv where user like 'mysqltest\_%';
  14. delete from mysql.columns_priv where user like 'mysqltest\_%';
  15. flush privileges;
  16. create user mysqltest_1@localhost;
  17. grant create user on *.* to mysqltest_1@localhost;
  18. grant select on `my\_1`.* to mysqltest_1@localhost with grant option;
  19. connect (user_a,localhost,mysqltest_1,,);
  20. connection user_a;
  21. --error 1410
  22. grant select on `my\_1`.* to mysqltest_2@localhost;
  23. create user mysqltest_2@localhost;
  24. disconnect user_a;
  25. connection default;
  26. delete from mysql.user where user like 'mysqltest\_%';
  27. delete from mysql.db where user like 'mysqltest\_%';
  28. delete from mysql.tables_priv where user like 'mysqltest\_%';
  29. delete from mysql.columns_priv where user like 'mysqltest\_%';
  30. flush privileges;
  31. #
  32. # Bug: #19828 Case sensitivity in Grant/Revoke
  33. #
  34. grant select on test.* to CUser@localhost;
  35. grant select on test.* to CUser@LOCALHOST;
  36. flush privileges;
  37. SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
  38. SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser' order by 1,2;
  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. SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser' order by 1,2;
  43. REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'CUser'@'localhost';
  44. flush privileges;
  45. SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
  46. SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser' order by 1,2;
  47. DROP USER CUser@localhost;
  48. DROP USER CUser@LOCALHOST;
  49. #### table grants
  50. create table t1 (a int);
  51. grant select on test.t1 to CUser@localhost;
  52. grant select on test.t1 to CUser@LOCALHOST;
  53. flush privileges;
  54. SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
  55. SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
  56. REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'CUser'@'LOCALHOST';
  57. flush privileges;
  58. SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
  59. SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
  60. REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'CUser'@'localhost';
  61. flush privileges;
  62. SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
  63. SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
  64. DROP USER CUser@localhost;
  65. DROP USER CUser@LOCALHOST;
  66. ### column grants
  67. grant select(a) on test.t1 to CUser@localhost;
  68. grant select(a) on test.t1 to CUser@LOCALHOST;
  69. flush privileges;
  70. SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
  71. SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
  72. REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'CUser'@'LOCALHOST';
  73. flush privileges;
  74. SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
  75. SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
  76. REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'CUser'@'localhost';
  77. flush privileges;
  78. SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
  79. SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
  80. DROP USER CUser@localhost;
  81. DROP USER CUser@LOCALHOST;
  82. drop table t1;
  83. # revoke on a specific DB only
  84. grant select on test.* to CUser2@localhost;
  85. grant select on test.* to CUser2@LOCALHOST;
  86. flush privileges;
  87. SELECT user, host FROM mysql.user where user = 'CUser2' order by 1,2;
  88. SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser2' order by 1,2;
  89. REVOKE SELECT ON test.* FROM 'CUser2'@'LOCALHOST';
  90. flush privileges;
  91. SELECT user, host FROM mysql.user where user = 'CUser2' order by 1,2;
  92. SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser2' order by 1,2;
  93. REVOKE SELECT ON test.* FROM 'CUser2'@'localhost';
  94. flush privileges;
  95. SELECT user, host FROM mysql.user where user = 'CUser2' order by 1,2;
  96. SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser2' order by 1,2;
  97. DROP USER CUser2@localhost;
  98. DROP USER CUser2@LOCALHOST;