代码改变世界

运行sql server profiler所需的权限

2015-03-04 17:30  假面Wilson  阅读(1981)  评论(0编辑  收藏  举报

********运行Sql Server Profiler所需的权限(performance)*********/

--EG. -- 使用TRACE帐户(Performancetest)跟踪Sql Server事件. -- 创建TRACE登陆帐户(Performancetest),并授予其 ALTER TRACE和VIEW SERVER STATE的权限.  USE Master  CREATE LOGIN Performancetest WITH PASSWORD='abc@1234';   GO   GRANT ALTER TRACE TO Performancetest;   GRANT VIEW SERVER STATE TO Performancetest;   GO   -- 在需求数据库Customer中创建TRACE用户帐户(Performancetest),并授予其SHOWPLAN的权限.   USE Customer   GO   CREATE USER Performancetest FROM LOGIN Performancetest;  GO   GRANT SHOWPLAN TO Performancetest;   GO     /*  说明(一般情况):  用户运行Profiler所需要的权限 与 执行创建跟踪Transact-Sql存储过程所需的权限相同。  一般要运行Profiler需要拥有ALTER TRACE 权限。 /******************************/ PS注意: 拥有SHOWPLAN,ALTER TRACE或VIEW SERVER STATE 权限的用户可以对显示计划输出中捕获的查询进行查看。 这些查询可能包含敏感信息、例如密码。 因此 --建议仅将这些授予有权查看敏感信息的一类信息,例如db_owner固定数据库角色的成员或sysadmin固定服务器角色的成员; 此外,建议您最好将包含显示计划相关事件的显示计划文件或跟踪文件保存到使用NTFS文件系统的某个位置, 并且只允许有权查看敏感信息的用户对之进行访问。 */

--转载,收藏:

用于重播跟踪的权限:

重播跟踪也要求重播跟踪的用户拥有 ALTER TRACE 权限。但是,如果重播期间在重播的跟踪中遇到 Audit Login 事件, Profiler 将使用 EXECUTE AS 命令模拟与登录事件关联的用户。如果 SQL Server Profiler 在重播的跟踪中遇到登录事件,将执行下列权限检查:

1. 拥有 ALTERTRACE 权限的用户 A 开始重播跟踪。

2. 在重播的跟踪中遇到用户 B 的登录事件。

3. SQL Server Profiler 使用 EXECUTE AS命令模拟用户 2。

4. SQL Server 尝试验证用户 B的身份,根据结果的不同会出现下列情况之一:

     如果用户 B 无法通过身份验证,SQLServer Profiler 将返回一个错误,并以用户 A 的身份继续重播跟踪。

     如果用户 B 成功通过身份验证,将以用户 B 的身份继续重播跟踪。

5. 检查用户 B 对目标数据库的权限,根据结果的不同会出现下列情况之一:

    如果用户 B 拥有对目标数据库的权限,则模拟成功,并以用户 B 的身份重播跟踪。

    如果用户 B 不拥有对目标数据库的权限,则服务器将检查该数据库的 Guest 用户。

6. 将检查目标数据库中是否存在 Guest 用户,根据结果的不同会出现下列情况之一:

    如果 Guest 帐户存在,将以 Guest帐户重播跟踪。

    如果目标数据库中不存在Guest 帐户,将返回一个错误,并以用户 A的身份重播跟踪。

以下关系图说明了重播跟踪时此检查权限的过程: