关于减少我在生产中的特权但不会使我的工作变得过于困难的任何指示

Sam*_*Sam 9 security sql-server best-practices

在 Windows 2008 R2 上运行 SQL Server 2005 和 2008。

我们将减少开发人员在生产中的权限 -作为 DBA我想为自己做同样的事情,限制生产权限并在需要时提升权限。

我的主要目标是消除DBA犯的愚蠢错误,开发人员最多将在生产中拥有读取权限。我们喜欢表现得好像我们是不会犯错的超级英雄,但没有一直拥有制作权是有道理的,这是一些人推荐的最佳做法。

最好的方法是什么?日常使用和安装过程中最不痛苦的是什么?

我们目前有一个针对 DBA 的 Windows 组,该组有权访问我们所有的服务器和数据库。

我也对降低操作系统/远程登录权限感兴趣 - 但我最关心的是数据库权限。

我猜我们需要提升权限才能以 sa 身份运行跟踪,并且可能需要在我们取消旧登录的 SA 权限之前进行一些所有权清理。我们可能会遇到哪些其他问题?

感谢您的建议和分享您的经验!

Tan*_*ena 3

理想情况下,对于可操作的生产数据库,您根本不希望开发人员对服务器或服务器上的任何数据库有任何访问权限。此类事情是您为遵守SOX规定而必须做的首要事情之一。

\n\n

对于 userID 运行的权限类型,它们真正应该拥有的唯一权限是db_datareader,db_datawriter和显式的(对于userID 的GRANT EXECUTE ON x TO y每个存储过程和用户​​定义的函数)。xy

\n\n

如果您需要在生产中运行跟踪,那么您会遇到一些问题,并且需要文本长城\xe2\x84\xa2 来解释这一切。我的第一个建议是拥有一个像生产一样锁定的 QA 环境,如果需要运行跟踪,请将产品数据库的备份恢复到 QA 并在那里运行跟踪。同样,如果您有 SOX、HIPAAPCI-DSS要求,那么您最好在将产品数据恢复到 QA 之前对其进行清理。

\n\n
\n

目前,我们有一个针对 DBA 的 Windows 组,该组拥有我们所有服务器和数据库的权限。

\n
\n\n

授予他们登录和查看数据的权限;但是,要执行 DBA 职责,请使用具有提升权限的单独登录名。我认识一位这样做的金融客户 - 基于常规 Windows 身份验证的登录在无意中造成的损害方面受到了限制。恢复和运行 DML 需要使用单独的 SQL 身份验证登录运行。

\n\n

我合作过的一个政府机构为每个服务器/数据库管理员使用了 2 个单独的登录名。因此,如果Tangurena是我的域登录(此登录将具有常规User权限),那么TangurenaAdmin将是我的单独Administrator登录。如果您一直使用管理员帐户,但它缺乏对其他事物的权限(例如没有电子邮件。哦,您说这是一件坏事......),您就会遇到麻烦。

\n\n

我正在使用的当前政府机构的每个服务器/数据库管理员的权限都高于标准用户,但不完全是管理员(将其视为组PowerUser)。域管理功能是使用共享域管理员帐户执行的。

\n\n

一个常见的错误是恢复错误的数据库(例如通过生产服务器恢复的 QA),并且这不能通过限制权限或多次登录来解决。两人一组做具有潜在破坏性的事情是最小化风险的一种方法。

\n\n
\n

我猜我们需要提升权限才能以 sa 身份运行跟踪

\n
\n\n

不需要。您只需要 ALTER TRACE 权限:
\n http://msdn.microsoft.com/en-us/library/ms187611.aspx

\n