我有一个名为“sql server”的用户SchoolTeacher
来访问我的应用程序。
PrimarySchool
它对我的数据库具有以下权限
插入、更新、删除、执行、连接、选择
用户必须能够通过我的 c# 应用程序执行简单的 DB 操作(添加、搜索、更新、删除)
我已经测试了该应用程序,这些权限似乎足够了,但最好还是听取第二种意见。
这些权限是否足够或者我是否需要添加/减少一些?
答案1
如果您的用户需要执行某些 SP(存储过程),您需要授予他/她执行者角色。您可以按照以下方法操作;
USE [MyDatabaseName]
GO
/* CREATE A NEW ROLE */
CREATE ROLE db_executor;
/* GRANT EXECUTE TO THE ROLE */
GRANT EXECUTE TO db_executor;
然后您只需简单地将您的用户添加到db_executor
角色即可。这将允许他/她从您的应用程序执行 SP。
但是您的标题似乎您需要给予用户尽可能低的权限,因此如果您不使用 SP,则可能不需要此操作。
另一方面,如果您依赖于其他数据库(例如您公司的主数据库名为 Contoso.Master),您也需要授予用户在这些数据库上执行某些操作的权限。