Как разрешить документ, который не может быть удален пользователем клиента и может быть изменен только? - PullRequest
2 голосов
/ 14 марта 2020

Как разрешить документ, который может быть изменен клиентом, но не удален?

Имеет ли RavenDB понятие разрешения документа для пользователей с правами администратора и не-администратора, как в других реляционных базах данных?

У меня есть набор документов, которые будут созданы только из панели инструментов RavenDB. Я хочу, чтобы клиент не мог удалить эти несколько документов.

Хотя клиент должен иметь возможность «изменять» их, под «изменять» я имею в виду только добавление.

1 Ответ

2 голосов
/ 14 марта 2020

Я предполагаю, что речь идет о 4.x версии RavenDB.

Короче говоря, нет, это невозможно с готовой функциональностью. Аутентификация и авторизация в RavenDB основана на сертификатах, а функциональность отличается от того, что вы обычно найдете в основных базах данных RDBMS. Вы можете назначить роли для каждого сертификата клиента, и эти роли будут иметь заранее определенный набор операций, к которым они могут получить доступ. Вы также можете ограничить доступ к базам данных для определенного сертификата. Но вы не можете ограничить определенные клиентские сертификаты от удаления документа, позволяя делать другие операции. Взгляните на статью документации для получения дополнительной информации: https://ravendb.net/docs/article-page/4.2/csharp/server/security/authorization/security-clearance-and-permissions

Если бы мне нужно было реализовать такую ​​функциональность, я бы, вероятно, поместил бы такие логики c на уровне DAL самого приложения. .

...