理想情况下,对于可运行的生产数据库,您根本不希望开发人员完全有权访问服务器或服务器上的任何数据库。此类事情是您必须首先实现SOX合规性之一。
对于运行userID的权利类型,它们真正应具有的唯一权利是db_datareader,db_datawriter并且是显式的GRANT EXECUTE ON x TO y(对于每个存储的proc和xuserID的用户定义函数y)。
如果您需要在生产中运行跟踪,则会遇到一些问题,这将需要一堵长城文本™来解释。我的第一个建议是要像生产一样锁定QA环境,如果需要运行跟踪,请将prod db的备份还原到QA并在其中运行跟踪。同样,如果您有SOX,HIPAA或PCI-DSS要求,那么最好在将产品数据恢复为QA之前对其进行清理。
当前,我们有一个DBA Windows组,该组对我们所有的服务器和数据库都有权限。
给他们登录并查看数据权限;但是,要执行DBAly职责,请使用具有更高特权的单独登录。我知道一位这样做的财务客户-常规的基于Windows身份验证的登录名受到他们可能无意造成的损害的限制。恢复并运行需要使用单独的SQL身份验证登录名运行的DML。
与我合作的一个政府机构为每个服务器/数据库管理员使用2个单独的登录名。因此,如果Tangurena是我的域登录名(此登录名将具有常规User特权),TangurenaAdmin则将是我的单独Administrator登录名。如果您一直都在使用管理员帐户,则会遇到麻烦,但是该帐户缺少其他权限(例如没有电子邮件。哦,您说这是一件坏事...)。
我正在与之合作的当前政府机构让每个服务器/数据库管理员的权限都高于标准用户,但管理员权限不高(将其视为PowerUser组)。域管理员功能是通过共享的域管理员帐户执行的。
常见的错误是还原错误的数据库(例如通过生产服务器还原的质量检查),而这不能通过权限限制或多次登录来解决。成对地进行可能具有破坏性的事情是使风险最小化的一种方法。
我猜我们需要提升特权才能以sa身份运行跟踪
不需要。您只需要ALTER TRACE权限:http :
//msdn.microsoft.com/zh-cn/library/ms187611.aspx