那是不是说..一定 要在USER下边赋予权限吗?????
解决方案 »
- 锁的兼容性问题
- 编写存储过程时出现:Recursive stored functions and triggers are not allowed.
- 数据库导出的.sql文件是乱码,求解决!!!
- mysql求月平均数
- Column count doesn't match value count at row 1
- 《sql必知必会》MySql导入数据脚本出错
- 内存表上建立1个hash索引
- 一个奇怪的问题!
- 用网页表单接收用户的中文跟日文数据并存入MySQL数据库,但从库里读取数据后在网页上显示就会出现乱码。问要怎样才能正确显示,即中
- mysql数据库怎么用一个时间段查询呢?求时间查询的代码
- 用telnet ip 3306 方式远程LINUX 下的MYSQL3.23.53 的问
- 求php连接sqlserver的函数
CREATE DATABASE
会引起访问其它数据库,所以要有创建数据库的权限必须在 User 中授与
如果不在USER里受权,,那么是不是除了新建数据库不能外,,,其他的如加一个表,新增数据都可以???
所以你当然就不可以进行建数据库操作了,
而其它的操作,例如 INSERT DELETE SELECT 等等操作将是可以授与的,
不过也只是针对于这个指定的数据库,
我们先来一步步分析实现
实现一个非ROOT帐号,不能看到其它的数据库,但要可以建立数据库1)
关闭 MySQL 服务器,并重新启动,
启动时加 --skip-show-database 使一般数据库用户不能浏览其它数据库。1) 建立一个新用户 root123@% ,他只有一个 CREATE 权限,INSERT INTO `user` (
`Host`, `User`, `Password`, `Select_priv`, `Insert_priv`, `Update_priv`, `Delete_priv`, `Create_priv`, `Drop_priv`, `Reload_priv`, `Shutdown_priv`, `Process_priv`, `File_priv`, `Grant_priv`, `References_priv`, `Index_priv`, `Alter_priv`
) VALUES(
"%", "root123", "", "N", "N", "N", "N", "Y", "N", "N", "N", "N", "N", "N", "N", "N", "N"
);现在的问题是你现在只能建立数据库
CREATE DATABASE `DatabaseName`;
而如果你希望访问一个已存在的数据库 `test`,或者是你新建立的数据库 `DatabaseName` 均是不可能的
那么你可以通过下面的语句来使他可以访问数据库 `test`,INSERT INTO db (
Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Grant_priv, References_priv, Index_priv, Alter_priv
) VALUES (
'%', 'test', 'root123', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y'
);而为了实现用户可以访问他自己新建立的数据库,
呵呵,好像是不可能的.
如果你为别人提供一个 MySQL 服务的支持,
那么最好的解决办法就是
你给他规定好了库名,
该用户只能访问这个数据库,
在这个数据库下,
他可以进行 CREATE TABLE
ALTER TABLE
等操作