我有一个带有OpenShift数据库的MySQL应用程序,我为其配置了一个ODBC连接,这样用户就可以将Access用作表的只读前端。我创建了这样一个用户,但是他们能够从Access前端更新数据,并且它反映在数据库中。我所做的是:
我创建了一个名为“reports”的用户,只允许对一个模式进行只读访问,即“reports”。
GRANT SELECT ON reviews.* TO reports@'%' IDENTIFIED BY `password`;当我跑的时候
SELECT * FROM mysql.user WHERE user = 'reports';我得到了所有的N和0。我知道"Select_priv“没有'Y‘,因为它不是一个全局select priv,只在一个模式上,所以我认为它是可以的。
当我跑的时候
SHOW GRANTS FOR 'reports'@'%';我得到了
允许使用。用密码“字符串”标识的“报告”@‘%’ 允许选择‘评论’。*到‘报告’@‘%’;
我料到的。
SELECT * FROM db where User = 'reports';用户|Select_priv|Insert_priv|Update_priv|..。 审查报告.
但是,当我进入Access,编辑一些数据,然后ssh进入数据库并查看数据库时,更新是有效的。
在连接Access之前,我使用rhc port-forward -a applicationname,并使用rhc ssh applicationname从服务器查看MySQL。
发布于 2015-01-16 19:42:24
在Access中有一个错误,如果您给它提供数据源,然后尝试更改它,它实际上不会释放您的初始数据源,即使它看起来是这样。我最初用All Privileges帐户设置了Access DB,然后将数据源更改为只读帐户,但它继续在幕后使用我的All Access帐户。使用odbcad32.exe删除数据源证明了这一点,因为我刚刚收到连接错误,尽管它说我是通过有效的只读帐户连接的。我从一开始就使用只读数据源创建了一个新的Access DB,它按预期工作。
https://stackoverflow.com/questions/27990527
复制相似问题