• SQL Server >> 凭证(Credential)


    凭据定义了访问 SQL Server 外部资源所需的身份验证信息。 主要用处可以用于访问Windows资源、Azure BLOB或者PolyBase模拟器访问大数据Hadoop。系统凭据是自动创建的,并与特定端点关联, 系统凭据名以两个哈希符号 (##) 开头。

    凭证又分为实例级别凭证和数据库级别凭证(DATABASE SCOPED)。区别就是,实例级别的凭证可以映射到登录用户(LOGIN),而数据库凭证不映射到数据库用户和登录用户(LOGIN)。

    创建凭证(CREATE CREDENTIAL)

    身份是Windows用户身份的时候,CREATE CREDENTIAL语句的IDENTITY指定Windows账户名,Secret指定账户密码。创建共享访问签名凭据,IDENTITY='SHARED ACCESS SIGNATURE',SECRET = 'accesstoken'

    使用场景1(SQL Server Agent作业步骤的运行身份):

    现在有个SSIS包需要访问Windows机器上的文件,这个包的定时作业执行是通过SQL Server Agent服务来执行的,但是由于SQL Server Agent的默认身份是本地机器的NetworkServices身份,所以会导致允许SSIS包的时候报错。为了不影响其他的Job作业,可以CREATE CREDENTIAL创建一个凭证,凭证的登录身份是可以访问目标机器文件的Windows用户,然后通过创建SQL Server Agent的代理,选择所创建的凭证,然后修改SSIS执行作业步骤的运行身份为前面所创建的代理。

    使用场景2(创建外部数据源 EXTERNAL DATASOURCE):

    -- Create a database master key if one does not already exist, using your own password. This key is used to encrypt the credential secret in next step.
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>' ;
    
    -- Create a database scoped credential with Kerberos user name and password.
    CREATE DATABASE SCOPED CREDENTIAL HadoopUser1
    WITH
         IDENTITY = '<hadoop_user_name>',
         SECRET = '<hadoop_password>' ;
    
    -- Create an external data source with CREDENTIAL option.
    CREATE EXTERNAL DATA SOURCE MyHadoopCluster
    WITH
      ( LOCATION = 'hdfs://10.10.10.10:8050' ,
        CREDENTIAL = HadoopUser1 ,
        TYPE = HADOOP ,
        RESOURCE_MANAGER_LOCATION = '10.10.10.10:8050'
      );

    参考:

    凭证

    CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)

    CREATE CREDENTIAL (Transact-SQL)

    CREATE EXTERNAL DATA SOURCE (Transact-SQL)

  • 相关阅读:
    调用序号
    图片经过时悬停动画
    左侧楼层导航
    dede如何实现二级栏目导航的仿制
    列表页调取二级栏目
    jquery 点击空白处隐藏div元素
    加入收藏功能
    31通过属性名获得属性值
    29.模板式邮箱验证
    28.九九乘法表
  • 原文地址:https://www.cnblogs.com/jenrrychen/p/16342178.html
Copyright © 2020-2023  润新知