Как предоставить права доступа к базе данных программно в MS Access - PullRequest
1 голос
/ 04 апреля 2019

У меня есть база данных MSAccess с определенной безопасностью на уровне пользователя.

Я пытаюсь программно создать новую группу в базе данных MSACCESS, используя C # ODBC.

Это работает:

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

Но у меня нет разрешения, хотя я использую владельца базы данных в строке подключения.

1 Ответ

1 голос
/ 05 апреля 2019

Я не могу найти это нигде, но укажите CONNECT для привилегии и примените ее ON DATABASE ...

GRANT CONNECT ON DATABASE TO NewGroup

Я не проверял это с подключением ODBC, но он работал с использованием ADO в Access следующим образом:

With CurrentProject.Connection
    .Execute "GRANT CONNECT ON DATABASE TO NewGroup"
End With

Так что он должен работать с подключением OleDb.

...