凭证(Credential)
在SQL Server中,凭证(Credential)用于把Windows用户的身份验证信息(在Windows环境下,是Windows 用户名和密码)存储在SQL Server实例中,并把该身份验证信息传递给Login和Proxy,使其有权限访问SQL Server实例之外的资源。在SQL Server安全体系中,Login用于登陆SQL Server实例,用户通过Login登陆到SQL Server实例,在权限规定的范围内,访问SQL Server实例内部的资源,也就是说,Login权限的作用域是SQL Server 实例;而对于SQL Server实例外部的资源,访问权限是由操作系统Windows负责管控的,操作系统不识别SQL Server内部的Login,只识别Windows 用户(User),因此,SQL Server在访问实例外部的资源时,需要模拟Windows用户的身份来访问操作系统管理的资源。
由于凭证(Credential)包含访问 SQL Server 实例之外的资源所需要的身份验证信息,这使得Login通过凭证,有权限访问SQL Server实例之外的系统资源。一个凭证可以映射多个Login,一个Login只能映射到一个凭证,通过系统视图: sys.credentials 查看凭证信息。用户可以创建自定义的凭证,SQL Server在安装时也会自动创建系统凭证,并关联到特定的端点(EndPoint),系统凭证的名字以##打头。
一,凭证和Login
虽然Login有权限登陆SQL Server 实例,但是不具有访问SQL Server 实例之外的资源的权限。而凭证用于访问SQL Server 实例以外的资源,在创建Login时,把Login和凭证关联,Login就能通过凭证中存储的Windows账户访问SQL Server 实例之外的资源。如果以SQL Server 验证方式创建Login,并将该Login映射到凭证,那么该Login能够通过存储在凭证中的身份验证信息访问到 SQL Server 实例外部的资源。
1,创建凭证
Identity 指定凭证包含的Windows用户名,Secret指定Windows用户的密码,使用Identity参数指定的Windows用户连接SQL Server实例的外部资源。
CREATE CREDENTIAL credential_name
WITH IDENTITY = 'windows_user', SECRET = 'password'
2,将Login映射到凭证
一个Login只能映射到一个凭证,多个Login能够映射到同一个凭证。
CREATE CREDENTIAL AlterEgo
WITH IDENTITY = 'Mary5', SECRET = '<EnterStrongPasswordHere>'; ALTER LOGIN Login1
WITH CREDENTIAL = AlterEgo;
GO
3,使用TSQL命令修改凭证的密码
ALTER CREDENTIAL credential_name
WITH IDENTITY = N'domain\username', SECRET = N'new_password'
当然,也能通过SSMS的UI修改凭证的密码,打开Server级别的Security,修改Credentials目录下的凭证:

二,凭证和Proxy
SQL Server Agent在执行Job Step时,使用两种类型的权限,分别是Job Owner和代理(Proxy),Proxy包含凭证(Credential),定义Job Step的安全上下文(Security Context),在Job Step执行之前,Agent模拟凭证指定的Windows User的权限,在该权限范围(Security Context)内执行Job Step,使Job Step有权限访问SQL Server 实例之外的资源。
1,使用Proxy来执行Job Step
除了执行TSQL脚本的Job Step之外,其他Job Step必须使用Proxy,这以为着,Job Step必须运行在Proxy定义的安全上下文中,在创建Job Step时,必须在Run as 属性中指定Proxy。
在创建Proxy时,必须填写Proxy Name,Credential name和选择Agent子系统(Subsystem),Proxy的Description是可选的。

2,授予Principal(Login, server role)访问Proxy的权限
在SQL Server中,不是所有的login都有权限访问Proxy。打开 New Proxy Account Wizard,在Principals Tab中,授予Principal(Login, server role)访问Proxy的权限。只有被授予访问Proxy权限的Principal,才能在Job Step中使用Proxy。默认情况下,固定服务器角色 sysadmin的成员有权限访问实例中的所有Proxy。

如果Login有权限访问Proxy,或者Login属于有权限访问Proxy的服务器角色(Server Role),那么用户能够在Job Step中使用Proxy。
参考文档:
Creating SQL Server Agent Proxies
SQL Server DBA Tip: Credentials and Proxies
Security Questions: Logins, Credentials, and Proxies
凭证(Credential)的更多相关文章
- Jenkins 凭证管理 - 看这一篇就够了~
目录 Credential 类型 Credential 安全 Credential 创建 Credential ID 定义 Credential 使用 Credential 相关插件 最佳实践 许多三 ...
- 【原】AFNetworking源码阅读(六)
[原]AFNetworking源码阅读(六) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 这一篇的想讲的,一个就是分析一下AFSecurityPolicy文件,看看AF ...
- Win10/UWP开发—凭据保险箱PasswordVault
PasswordVault用户凭据保险箱其实并不算是Win10的新功能,早在Windows 8.0时代就已经存在了,本文仅仅是介绍在UWP应用中如何使用凭据保险箱进行安全存储和检索用户凭据. 那么什么 ...
- Android广播大全
1.String ADD_SHORTCUT_ACTION 动作:在系统中添加一个快捷方式. 2.String ALL_APPS_ACTION 动作:列举所有可用的应用.输入:无. 3.String A ...
- Android权限列表permission说明
网络上不乏android权限列表,但是很少有将列表和使用方法放在一起的,所以特此总结一下 需要在AndroidManifest.xml中定义相应的权限(以获取internet访问权限为例),如下: & ...
- android关于AndroidManifest.xml详细分析
http://my.eoe.cn/1087692/archive/5927.html 一.关于AndroidManifest.xmlAndroidManifest.xml 是每个android程序中必 ...
- 【转】Android Intent Action 大全
String ADD_SHORTCUT_ACTION 动作:在系统中添加一个快捷方式.. “android.intent.action.ADD_SHORTCUT” String ALL_APPS_AC ...
- android广播集合,intent,action
android.permission.ACCESS_CHECKIN_PROPERTIES 同意读写訪问"properties"表在checkin数据库中,改值能够改动上传( All ...
- action使用大全
1.Intent的用法: (1)Action跳转 1. 使用Action跳转,当程序AndroidManifest.xml中某一个 Activity的IntentFilter定义了包含Action, ...
- 在Ubuntu 12.10 上安装部署Openstack
OpenStack系统有几个关键的项目,它们能够独立地安装但是能够在你的云计算中共同工作.这些项目包括:OpenStack Compute,OpenStack Object Storage,OpenS ...
随机推荐
- Linux使用小笔记<安装篇>
问题一:在windows下删除ubuntu并修复引导windows启动. 1. 下载MBRFix工具,放在c盘,利用命令提示符,进入软件所在目录,cd c:\mbrfix 2.输入 MBRFix /d ...
- [POJ1088] 滑雪(递归dp)
Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道 ...
- Robot Framework自动化测试环境部署
文档版本:v1.0 作者:令狐冲 如有问题请发邮件到:1146009864@qq.com 使用Robot Framework框架(以下简称RF)来做自动化测试. 模块化设计 1.所需环境一览表 软件 ...
- 1081: [SCOI2005]超级格雷码
1081: [SCOI2005]超级格雷码 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 301 Solved: 159[Submit][Statu ...
- Maven工具的使用总结
Maven作为构建工具,现在项目开发使用的越来越多,相对于ant和gradle,我更喜欢使用maven,先总结maven使用的一系列知识: 一.maven相关的网址: 名称 地址 其他 maven官网 ...
- vim 括号自动补全
来源:http://www.cnblogs.com/huanlei/archive/2012/04/02/2430153.html 有时要重新配置vim 的,所以收藏了: inoremap ( ()& ...
- python list 切片实验
list[start:stop:step] >>> a_list=['hito','bb','cc','dd','ee','ff']>>> a_list[::-1] ...
- 使用Nginx+CppCMS构建高效Web应用服务器(之二)
使用Nginx+CppCMS构建高效Web应用服务器(之二) 上一篇 使用Nginx+CppCMS构建高效Web应用服务器(之一) 大致介绍了网站的整体架构,实际上通过调用REST获取数据并没有实现. ...
- 实现Unity编辑器模式下的旋转
最近在做一个模型展示的项目,我的想法是根据滑动屏幕的x方向差值和Y方向的差值,来根据世界坐标下的X轴和Y轴进行旋转,但是实习时候总是有一些卡顿.在观察unity编辑器下的旋转之后,发现编辑器下的旋转非 ...
- 【G】开源的分布式部署解决方案文档 - 手动安装
G.系列导航 [G]开源的分布式部署解决方案 - 导航 序言 因各种原因,决定先写使用文档.也证明下项目没有太监.至于安装过程复杂,是因为还没有做一键安装,这个现阶段确实没精力. 项目进度 (点击图片 ...