grant2.result
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:5k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. SET NAMES binary;
  2. drop database if exists mysqltest;
  3. drop database if exists mysqltest_1;
  4. delete from mysql.user where user like 'mysqltest_%';
  5. delete from mysql.db where user like 'mysqltest_%';
  6. delete from mysql.tables_priv where user like 'mysqltest_%';
  7. delete from mysql.columns_priv where user like 'mysqltest_%';
  8. flush privileges;
  9. grant all privileges on `my_%`.* to mysqltest_1@localhost with grant option;
  10. select current_user();
  11. current_user()
  12. mysqltest_1@localhost
  13. grant all privileges on `my_1`.* to mysqltest_2@localhost with grant option;
  14. grant all privileges on `my_%`.* to mysqltest_3@localhost with grant option;
  15. ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'my_%'
  16. show grants for mysqltest_1@localhost;
  17. Grants for mysqltest_1@localhost
  18. GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost'
  19. GRANT ALL PRIVILEGES ON `my_%`.* TO 'mysqltest_1'@'localhost' WITH GRANT OPTION
  20. show grants for mysqltest_2@localhost;
  21. Grants for mysqltest_2@localhost
  22. GRANT USAGE ON *.* TO 'mysqltest_2'@'localhost'
  23. GRANT ALL PRIVILEGES ON `my_1`.* TO 'mysqltest_2'@'localhost' WITH GRANT OPTION
  24. show grants for mysqltest_3@localhost;
  25. ERROR 42000: There is no such grant defined for user 'mysqltest_3' on host 'localhost'
  26. delete from mysql.user where user like 'mysqltest_%';
  27. delete from mysql.db where user like 'mysqltest_%';
  28. flush privileges;
  29. create database mysqltest_1;
  30. grant all privileges on `mysqltest_1`.* to mysqltest_1@localhost with grant option;
  31. select current_user();
  32. current_user()
  33. mysqltest_1@localhost
  34. show databases;
  35. Database
  36. mysqltest_1
  37. test
  38. grant all privileges on `mysqltest_1`.* to mysqltest_1@localhost with grant option;
  39. ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'mysqltest_1'
  40. show grants for mysqltest_1@localhost;
  41. Grants for mysqltest_1@localhost
  42. GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost'
  43. GRANT ALL PRIVILEGES ON `mysqltest_1`.* TO 'mysqltest_1'@'localhost' WITH GRANT OPTION
  44. delete from mysql.user where user like 'mysqltest_%';
  45. delete from mysql.db where user like 'mysqltest_%';
  46. drop database mysqltest_1;
  47. flush privileges;
  48. create database mysqltest;
  49. grant INSERT, SELECT on mysqltest.* to mysqltest_1@localhost;
  50. flush privileges;
  51. use mysqltest;
  52. create table t1 (id int primary key, data varchar(255));
  53. show grants for current_user();
  54. Grants for mysqltest_1@localhost
  55. GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost'
  56. GRANT SELECT, INSERT ON `mysqltest`.* TO 'mysqltest_1'@'localhost'
  57. insert into t1 values (1, 'I can''t change it!');
  58. update t1 set data='I can change it!' where id = 1;
  59. ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'mysqltest'
  60. insert into t1 values (1, 'XXX') on duplicate key update data= 'I can change it!';
  61. ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'mysqltest'
  62. select * from t1;
  63. id data
  64. 1 I can't change it!
  65. drop table t1;
  66. delete from mysql.user where user like 'mysqltest_%';
  67. delete from mysql.db where user like 'mysqltest_%';
  68. flush privileges;
  69. create table t1 (a int, b int);
  70. grant select (a) on t1 to mysqltest_1@localhost with grant option;
  71. grant select (a,b) on t1 to mysqltest_2@localhost;
  72. ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for column 'b' in table 't1'
  73. grant select on t1 to mysqltest_3@localhost;
  74. ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 't1'
  75. drop table t1;
  76. delete from mysql.user where user like 'mysqltest_%';
  77. delete from mysql.db where user like 'mysqltest_%';
  78. delete from mysql.tables_priv where user like 'mysqltest_%';
  79. delete from mysql.columns_priv where user like 'mysqltest_%';
  80. flush privileges;
  81. drop database mysqltest;
  82. use test;
  83. create database mysqltest_1;
  84. create table mysqltest_1.t1 (i int);
  85. insert into mysqltest_1.t1 values (1),(2),(3);
  86. GRANT ALL ON mysqltest_1.t1 TO mysqltest_1@'127.0.0.0/255.0.0.0';
  87. show grants for current_user();
  88. Grants for mysqltest_1@127.0.0.0/255.0.0.0
  89. GRANT USAGE ON *.* TO 'mysqltest_1'@'127.0.0.0/255.0.0.0'
  90. GRANT ALL PRIVILEGES ON `mysqltest_1`.`t1` TO 'mysqltest_1'@'127.0.0.0/255.0.0.0'
  91. select * from t1;
  92. i
  93. 1
  94. 2
  95. 3
  96. REVOKE ALL ON mysqltest_1.t1 FROM mysqltest_1@'127.0.0.0/255.0.0.0';
  97. delete from mysql.user where user like 'mysqltest_1';
  98. flush privileges;
  99. drop table mysqltest_1.t1;
  100. grant all on mysqltest_1.* to mysqltest_1@'127.0.0.1';
  101. select current_user();
  102. current_user()
  103. mysqltest_1@127.0.0.1
  104. set password = password('changed');
  105. select host, length(password) from mysql.user where user like 'mysqltest_1';
  106. host length(password)
  107. 127.0.0.1 41
  108. revoke all on mysqltest_1.* from mysqltest_1@'127.0.0.1';
  109. delete from mysql.user where user like 'mysqltest_1';
  110. flush privileges;
  111. grant all on mysqltest_1.* to mysqltest_1@'127.0.0.0/255.0.0.0';
  112. select current_user();
  113. current_user()
  114. mysqltest_1@127.0.0.0/255.0.0.0
  115. set password = password('changed');
  116. select host, length(password) from mysql.user where user like 'mysqltest_1';
  117. host length(password)
  118. 127.0.0.0/255.0.0.0 41
  119. revoke all on mysqltest_1.* from mysqltest_1@'127.0.0.0/255.0.0.0';
  120. delete from mysql.user where user like 'mysqltest_1';
  121. flush privileges;
  122. drop database mysqltest_1;
  123. set password = password("changed");
  124. ERROR 42000: Access denied for user ''@'localhost' to database 'mysql'
  125. lock table mysql.user write;
  126.  flush privileges;
  127.  grant all on *.* to 'mysqltest_1'@'localhost';
  128. unlock tables;
  129. lock table mysql.user write;
  130.  set password for 'mysqltest_1'@'localhost' = password('');
  131.  revoke all on *.* from 'mysqltest_1'@'localhost';
  132. unlock tables;
  133. drop user 'mysqltest_1'@'localhost';