很抱歉提出意见类型的问题,但我想知道什么是最佳实践。
我有一堆 sql 服务器,每个工作以及每个 SSRS 报告和 SSIS 项目的每个连接管理器都使用一个登录名,当然是系统管理员。我认为这是一个问题,原因有两个:
- 我希望每个 SSRS、SSIS 等都使用自己的登录名,并且只有所需的权限。
- 我还想立即知道是什么导致了阻塞等,而不是每次都看到一个系统管理员登录,然后检查是什么在运行有问题的查询。
我的 DBA 同事认为,由于需要登录次数(每台服务器数百次),这太疯狂了,建议每个数据库使用 db_datareader 角色登录一次会更合适。任何人都可以分享文章链接或提供建议吗?
谢谢
由于您要求最佳实践,因此通过像这样使用系统管理员,您违反了最小特权原则,该原则指出:
我会说为每个用户、应用程序、工作或服务创建和管理一个登录名将走向相反的极端,这也是一个问题,因为正如你的 DBA 同事所说,这将使它成为一项非常难以管理的工作许多登录,但您可以通过使用角色和 Windows 组来实现中间期限。检查校长文档。
引用@Dan Guzman的评论:为了识别,您可以在连接字符串中指定应用程序名称,而不是单独登录。
配置连接字符串和应用程序名称后,您可以使用 sp_who2、sp_whoisactive或sys.dm_exec_sessions DMV从sys.sysprocesses中检索它。