首页 > 其他 > 详细

修改Credentials 密码

时间:2016-05-29 15:08:38      阅读:288      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!