这是后续内容:
我正在做这样的视图(我相信这是可以优化的):
包含的db.php:
$conn = mysql_connect("localhost","directory","dghgffhghf") or die(mysql_error());
mysql_select_db("directory", $conn) or die(mysql_error());
mysql_query("CREATE or REPLACE VIEW {$user}_rooms AS SELECT * FROM rooms WH
环境: Ubuntu 11.10,MySQL 5.1.58
我有一个带有视图的小型数据库。当我尝试转储和恢复时,我得到
ERROR 1356 (HY000) at line 1693: View 'curation2.condition_reference_qrm_v' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
但是,我可以连接到部分恢复的数据库并自己创建视图。因此,我怀疑错误消息是由与视图本身无关的问题引起
我有一个MySQL用户,我希望它只查看我想要的视图,而不是数据库中的任何其他表。我只对某些视图授予了此用户权限,如下所示:
GRANT SHOW VIEW ON `myDatabase`.`awesome_view` TO 'thisUser'@'%'
如果我执行一个show grants;语句,我只能像预期的那样看到这个权限。不过,我希望这个用户只查询视图,而不是与这些视图相关的表,但我找不到这样的方法。看起来,如果我想让用户在视图上做一个选择,那么也必须为表授予select,或者我错了吗?
如果我在其余的表中拒绝select语句,并且在命令行中尝试执行sel
我在使用MySQL服务器5.0 (5.0.92)的视图时遇到了问题
对于这样的用户,我不能使用视图:
GRANT USAGE ON *.* TO 'testuser'@'' IDENTIFIED BY PASSWORD '**********';
GRANT ALL PRIVILEGES ON `testuser`.* TO 'testuser'@'';
记录在mysql db表中:
mysql> select * from db where user='testuser'\G;
******
下面是创建视图查询
CREATE ALGORITHM=UNDEFINED DEFINER=`serve3_user465`@`%` SQL SECURITY DEFINER VIEW `constantcontact_customers_agents` AS select `customers`.`CustomerID` AS `CustomerID`,`customers`.`AgentID` AS `AgentID`,`customers`.`AccountType` AS `CustomerAccountType`,`customers`.`FirstName` AS `Customer
我使用mysqldump在特定计算机上的帐户之间复制数据库。一切都很好,除了当我们到达我们定义的视图时。因为转储包括如下一行..。
/*!50013 DEFINER=`user_a`@`localhost` SQL SECURITY DEFINER */
..。当在user_b上将转储加载到mysql中时,我们会收到一个错误:
ERROR 1227 (42000) at line 657: Access denied; you need the SUPER privilege for this operation
不用说,我在这个mysql实例上没有超级特权。有没有办法说服mysqldump以
我在MySQL 5.0数据库中定义了一个:
CREATE OR REPLACE ALGORITHM=MERGE
DEFINER=db1_user@'%' SQL SECURITY DEFINER
VIEW db2.data_view AS SELECT * FROM db1.data_table;
这样做是为了让db2用户能够访问db1中的这个表,并且适用于SELECT查询:
[db2_user@db2]> select name from data_view limit 1;
+----------------+
| name |
+------
我试图从php和im的另一个视图中创建一个视图,没有任何错误,但是它并不创建一个视图。我可以手动创建mysql控制台中的另一个视图,但不能从php创建视图。知道我哪里出问题了吗?
function createTransaction_file($db,$file_id){
$sql = "CREATE VIEW transaction_file AS SELECT context,transaction_type,starttime,stoptime,stoptime - starttime AS runtime,correlator,parent_correlator,
我有一个远程数据库,通过sql管理将其与用户及其密码连接起来。数据库有四个表和一个视图。要放置权限,我执行了以下命令:
mysql> grant all privileges on databasename.* to 'username'@'%' identified by 'password' with grant option;
那就没事了。当我连接到数据库时,我可以从表中看到数据,但是如果我浏览视图,例如:
select * from viewname;
我知道这个错误:
错误SQL (1045):拒绝用户‘用户名’@‘%’的访问(
我想在我的MySQL数据库中创建一个新用户,它只能通过phpmyadmin选择和更新表中的某些列。我知道这个问题在这里被问了好几次,但我有一个以前从未提到过的问题。
我使用以下命令来授予用户选择表中两行的访问权:
GRANT SELECT (id,name) ON db.table TO 'user'@'%'
当我在phpmyadmin上用这个用户登录并想要显示表(即只显示id和name列)时,它给出了以下错误消息:
#1142 - SELECT command denied to user 'user'@'localhost'
我有一个mysql数据库,我在其中创建用户,并向他们授予对特定数据库的select、update、insert和delete权限。
数据库同时包含表和视图。由于某些原因,这些创建的用户在尝试从视图中进行选择时会出现以下错误。
Access denied for user 'someuser'@'%' (using password: YES)
SELECT * FROM (`someview`) WHERE `somecolumn` = 0
但是,当从同一数据库中的表中进行选择时,我没有得到这个错误。
我已经在多个地方部署了这个应用程序,它在其他任何地方都能正