码迷,mamicode.com
首页 > 其他好文 > 详细

修改Credentials 密码

时间:2016-05-29 15:09:01      阅读:520      评论:0      收藏:0      [点我收藏+]

标签:

今天,Leader 吩咐要修改管理账户的密码,我负责的Part是修改package和 Replication的Job的密码。仔细想了下,由于我们使用的Windows验证方式,而Job在执行时,是使用Proxy,只需要修改Proxy使用的Credentials 即可。

方式1,使用UI修改Credentials的Password

Step1,查看Job Step使用的Proxy

技术分享

Step2,查看SSIS Package Execution使用的Proxy

技术分享

Step3,查看Proxy使用的Credentials

技术分享

Step4,在Security->Credentials中修改Credentials对应的Password

技术分享

 

技术分享

方式2,使用TSQL 语句修改Credentials的Password

USE [master]
GO
ALTER CREDENTIAL [ETL_Job] WITH IDENTITY = Ndomain\username, 
SECRET = N145qwer
GO

如果Credentials非常多,那么这样修改将是十分麻烦的。我们的Server使用Replication来实现读写分离,而每一个Subscription 都有一个Credentials,如果使用UI逐个修改上百个Credentials将会十分耗时。SQL Server使用系统表 sys.credentials 存储本机的所有Credentials,可以使用 cursor 和动态 SQL 逐个修改。

USE [master]
GO

--declare variable
declare @sql nvarchar(max)
declare @CredentialsName sysname
declare @Credentials_Identity sysname
declare @Password sysname

--set variable value
set @Credentials_Identity=Ndomain\username
set @Password=N145qwer

--declare cursor
DECLARE cur_credentials cursor 
LOCAL
FORWARD_ONLY
FAST_FORWARD
READ_ONLY
for 
select name
from sys.credentials
where credential_identity=@Credentials_Identity

open cur_credentials
FETCH from cur_credentials into @CredentialsName

while (@@FETCH_STATUS=0)
begin

    set @sql=NALTER CREDENTIAL + @CredentialsName 
    +N WITH IDENTITY = N‘‘‘+@Credentials_Identity 
    +N‘‘‘ ,SECRET = N‘‘‘+@Password+N‘‘‘‘;
    exec @sql;

    FETCH from cur_credentials into @CredentialsName
end

CLOSE cur_credentials
DEALLOCATE cur_credentials

 

修改Credentials 密码

标签:

原文地址:http://www.cnblogs.com/ljhdo/p/5531467.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!