MSSQL Job 构建提升权限的途径(mssql利用job提权)
MSSQL Job 构建提升权限的途径
MSSQL 作业是Microsoft主流的增强数据库性能的一项技术,它可以有效支撑大型数据库平台上的定期和非定期复杂操作。合理安排MSSQL 作业,可以降低整个数据库网络的负载,提升数据库的性能。
鉴于MSSQL 作业是完成数据库任务的基础,其任务完成所需的权限至关重要。如果权限不足,将会导致任务执行的限制,或者完全无法运行。既要提升MSSQL 作业的权限,又要保证数据库安全性,如何实现?
其实,MSSQL 作业权限提升可以采取以下两种方法实现:
1. 使用Windows账号为MSSQL 作业建立访问权限。首先,在Windows系统里创建一个账号,并为此账号设置密码;然后,在MSSQL里建立该账号,并加以授权,赋予该账号MSSQL 作业任务权限;最后,设置MSSQL 作业以此Windows账号为其登录账号,完成权限的提升。
例如,当需要为作业修改服务器配置时,就可以用以下代码为Windows账号建立访问权限:
sp_grantlogin 'My Windows Domain\My Windows Login Name';
GOgrant execute on sp_configure to [My Windows Domain\My Windows Login Name];
GOexec sp_configure 'Show Advanced Options',1
GORECONFIGURE
GOexec sp_configure 'max degree of parallelism',2
GORECONFIGURE
GOSP_MULTIPLELOGINS SET
GO
2. 使用Excecut,为MSSQL 作业创建一个Proxy用户方案。这种方法可以实现更为有效的权限管理,而不是完全按照Windows账号来控制MSSQL 作业权限。利用Proxy平台,可以简单地进行MSSQL 作业权限提升,而不用登录帐号来实现,可以很大程度的降低数据库的安全风险。
所以,利用Excecut创建Proxy方案,代码可以是这样:
create proxy p_proxy
with login = 'My Windows Domain\My Windows Login Name',external_name = 'My Windows Domain\My Windows Login Name',
credential = Cred_Name
create login My Proxy with password = 'testProxy'
, default_database = master, check_policy = off
exec sp_grantlogin 'My Proxy'exec sp_grantproxy 'My Proxy','p_proxy'
use AdventureWorksDW2012exec sp_grantdbaccess 'My Proxy'
exec sp_addrolemember 'db_datareader','My Proxy'exec sp_addrolemember 'db_datawriter','My Proxy'
综上所述,MSSQL 作业提升权限途径,可以采用Windows账号登录权限方案和Excecut,来创建Proxy用户方案,有效实现MSSQL作业任务的权限提升,而又不影响数据库的安全。