我有一个定义了用户级别安全性的MSAccess数据库。
我正在尝试使用C#ODBC在MSACCESS数据库中以编程方式创建一个新组。
这有效:
GRANT SELECT, DELETE, INSERT, UPDATE, SELECTSCHEMA, SCHEMA ON CONTAINER Tables TO NewGroup
这样做(显然是通过提供TABLE或OBJECT和objectName来实现的):
$"GRANT SELECT, INSERT, UPDATE, DELETE ON {objectType} {objectName} TO NewGroup";
但是,当我运行这些授予时,该组仍然没有开放数据库权限。我该怎么办?
我尝试过:
GRANT SELECTSCHEMA ON CONTAINER Databases TO NewGroup
但是即使我在连接字符串中使用数据库的所有者,我也没有权限。
答案 0 :(得分:1)
我在任何地方都找不到此文档,但是为特权指定了CONNECT
并应用了ON DATABASE
...
GRANT CONNECT ON DATABASE TO NewGroup
我没有使用ODBC连接进行测试,但是它可以在Access中使用ADO来工作,如下所示:
With CurrentProject.Connection
.Execute "GRANT CONNECT ON DATABASE TO NewGroup"
End With
因此它应该与OleDb连接一起使用。