sql server 数据库连接方式分析、详解

2023-11-04

先画一张概况图

*OLEDB方式连接

Sql身份验证模式:Provider="SQLOLEDB;data source=server_name;initial catalog=databasename;uid=username;pwd=password;"

Windows身份验证模式:ConnectString=”Provider=SQLOLEDB;Data Source=server_name;DataBase=databasename; Integrated Security=SSPI;Persist Security=true”

注释:(此两种方式的却别仅在于windows验证中用Integrated Security=SSPI代替了sql验证中的uid=username;pwd=password语句(即指明用户名、密码语句)

1.Provider=SQLOLEDB:提供者为SQLOLEDB(此为固定)

2.Integrated Security=SSPI

集成安全机制采用SSPI
SSPI
是Security Support Provider Interface(Microsoft安全支持提供器接口)SSPI是定义得较全面的公用API,用来获得验证、信息完整性、信息隐私等集成安全服务,以及用于所有分布式应用程序协议的安全方面的服务。

设置Integrated Security为 True 的时候,采用windows身份验证模式。只有设置为 False 或省略该项的时候,采用 UserID, PWD 来连接。Integrated Security 可以设置为: True, false, yes, no ,还可以设置为:sspi ,相当于 True,建议用这个代替 True。

3.Persist Security Info:坚持安全信息

Persist Security Info属性的意思是表示是否保存安全信息,其实可以简单的理解为"ADO在数据库连接成功后是否保存密码信息",True表示保存,False表示不保存.ADO缺省为False(即可有可无).总体来说,如果数据库连接成功后不再需要连接的密码,出于安全性考虑,还是建议将Persist Security Info设为false,以防止后门程序取得数据库连接的密码.

4.initial catalog等同于database(可以互换):指定连接数据库的名字(如果省略则连接的是当前用户名的默认数据库,详情见下文)

5.DATA SOURCE是SQL服务器的名字
在data source里用localhost或(local)或“.”都代表本地服务器. 也可用本机的外网IP地址 例如:data source=192.168.24.71;

*ODBC方式连接

使用数据源方式

此种方式主要是配置odbc数据源,有三种方式,系统dsn、用户dsn、文件dsn。具体方法这里不作介绍。配置完数据源以后即可连接:

    用系统dsn: connectstring= "DSN=dsnname; UID=username; PWD=password"
 
    用文件dsn: connectstring = "FILEDSN=filedsnname; UID= username; PWD=password " 
  使用ODBC驱动方式:
   使用ODBC 驱动程序, 免去了配置ODBC数据源的步骤, 可以利用ODBC 驱动程序直接与数据库相连接。

ConnectString="Driver={sql server};server=servername;database=databasename;uid=username;pwd=password;"

详细注释(关于windows身份验证和SQL身份验证):

Windows身份验证使用Windows登录用户身份连接数据库,而SQL身份验证要求显式地指定SQL Server用户ID和密码。要想使用Windows身份验证,必须在连接字符串中包括 Integrated Security 属性:
Data Source=ServerName;Integrated Security=True;

默认情况下,Integrated Security 属性为 False ,这意味着将禁用Windows身份验证。如果没有显式地把这个属性的值设置为True,连接将使用SQL Server身份验证,因此,必须提供SQL Server用户ID和密码。Integrated Security属性还能识别的其他值只有SSPI(Security Support Provider Interface,安全性支持提供者接口).在所有的Windows NT操作系统上,其中包括Windows NT 4.0、2000、XP,都支持值SSPI。它是使用Windows身份验证时可以使用的惟一接口,相当于把Integrated Security 属性值设置为True。


在Windows身份验证模式中,SQL Server使用Windows的安全子系统对用户连接进行有效性验证。即使显示地指定用户ID和密码,SQL Server也不检查连接字符串中的用户ID和密码。因为只有Windows NT、2000、XP支持SSPI,因此如果正使用的是这些操作系统,则只能使用Windows集成的安全策略去连接SQL Server。不论使用哪一个操作系统,当使用SQL Server身份验证时,必须在连接字符串中指定用户ID和密码:
Data Source=ServerName;User ID=donaldx;Password=unbreakable

默认情况下,SQL Server 每一个用户都可指定一个默认数据库,当在数据库中创建用户时,可以设置用户的默认数据库。此外,也可以在任意时间更改用户的默认数据库。:如下图

设置好默认数据库后在连接时可以不指定database(或initial catalog)的值即可连接默认数据库

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sql server 数据库连接方式分析、详解 的相关文章

  • Node.js 搭配 Socket.io 实现与客户端实时通信

    最近准备用react搭建node搭建一个大数据可视化平台 并且服务端利用到socket io 客户端利用到socket io client 这里总结下基本使用方式 安装 npm i express socket io socket io c
  • SQLi LABS Less-34

    第三十四关注入点为 单引号字符串型 注入类型为 报错注入 此关卡通过 代码WAF 将单引号 转义成 我们使用 编译 绕过WAF 先上结果 and updatexml 1 concat 0x7e substr select group con
  • Delphi多层开发方案比较

    以下转载自 http blog sina com cn s blog 53decb4101009a5m html type v5 one label rela nextarticle http blog csdn net SmallHand

随机推荐

  • 华为机试HJ60 查找组成一个偶数最接近的两个素数

    HJ60 查找组成一个偶数最接近的两个素数 Python 题目 解题思路 代码 结果 题目 解题思路 1 多组输入 需要循环 2 先创建一个判断是否素数的函数以备调用 素数判断 从1以后开始 如果到该数一半的位置有可以整除的数 则不是素数
  • 【pygame杂记】字体

    这一节放在这里挺突兀的 但是因为今天开周会 晚回来了 而且吃晚饭还吃撑了所以就简单写一下吧 举个栗子进行简述 我们知道在python中所有的东西都可以抽象成对象 在这里 我们创建了一个字体的对象 创建字体对象 font pygame fon
  • android Handler详细使用方法实例

    开发环境为android4 1 Handler使用例1 这个例子是最简单的介绍handler使用的 是将handler绑定到它所建立的线程中 本次实验完成的功能是 单击Start按钮 程序会开始启动线程 并且线程程序完成后延时1s会继续启动
  • DDL语言的使用

    第1关 创建数据库 编程要求 在右侧窗口编写 SQL 并创建一个名为 teachingdb 的教学数据库 连接数据库的用户名为 root 密码为 123123 请在此编写代码 操作完毕之后点击评测 Begin create database
  • 蓝桥杯VIP算法训练-轨道炮-看完秒懂的(c++map)

    题目描述 小明在玩一款战争游戏 地图上一共有 N 个敌方单位 可以看作 2D 平面上的点 其中第 i 个单位在 0 时刻的位置是 Xi Yi 方向是 Di 上下左右之一 用 U D L R 表示 速度是 Vi 小明的武器是轨道炮 只能使用一
  • Typescript--Typescript中的新增类型

    一 any any表示的是任意类型 一个变量设置类型为any后 相当于该变量管理了TS的类型检测 尽量不要用any let d any 声明变量如果不指定类型 则TS解析器会自动判断变量的类型为any 隐式的any let d d 10 d
  • DataFrame数据的多种遍历方法

    后续补充 遍历DataFrame的三种方法 iteritem 方法返回一个
  • Unity初探(光源类型与光照模式)

    0 引子 unity的光源有四种 每种光源都有3种光照模式 而场景中不同模式的光源而且对静态和动态的对象有不同的效果 而官方文档又显得有点晦涩难懂 如果是初学者第一次阅读 比如说我 难免会被场景中动态和静态游戏对象与不同模式光源的交互 以及
  • 【DATAX】datax读取hive分区表时,空分区任务报错问题解决

    问题场景 之前在 Dolphinscheduler调度Datax任务读取Hive分区表案例 博客中我分享了调度任务读取hive分区的几个场景 当时提到了分区中有空文件的解决方案 除此之外 我们还遇到了空分区的场景 即该分区没有数据 连所谓的
  • BLS with Random Oracle; BLS 短签名在随机谕言机模型下的安全证明 内容小结

    BLS with Random Oracle BLS 短签名在随机谕言机模型下的安全证明 内容小结 密码学安全规约推荐书目 博客为这两本书学习笔记与内容小结 密码学中的可证明安全性 杨波 清华大学出版社 Introduction to Se
  • 优化图形性能

    良好的性能对很多游戏的成功至关重要 以下几条简单法则有助于将游戏的渲染速度最大化 找出影响图形性能的主要因素 游戏的图形部分主要影响计算机的两个系统 CPU 和 GPU 找到性能问题所在是一切优化的首要法则 因为 GPU 与 CPU 的优化
  • qt 信号与槽机制,登录界面跳转

    登录界面跳转 配置文件 pro QT core gui texttospeech greaterThan QT MAJOR VERSION 4 QT widgets CONFIG c 11 The following define make
  • JDK源码中为什么在方法中创建一个临时变量替代成员变量、类变量

    JDK源码中为什么在方法中创建一个临时变量替代成员变量 类变量 又名 临时变量提高Java代码性能 一个Java类中可以存在多种形式的变量 可以是最一般的成员变量 或静态变量 或临时变量 那么这三种变量的存取效率如何 1 实战出真知 pac
  • 【ML on Kubernetes】第 6 章:机器学习工程

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • 其他常用类

    1 Json和对象之间的转换 2 StringUtils StringUtils isNotBlank 判断不为空且也不是空字符串 3 BeanCopier BeanCopier是Cglib包中的一个类 用于对象的复制 net sf cgl
  • MySQL基础--(函数,函数返回值)

    含义 一组预先编译好的sql语句的集合 理解成成批的语句 1 提高代码的重用性 2 简化操作 3 减少编译次数并且减少和数据库服务器的连接次数 提高效率 区别 存储过程 可以有0个返回 也可以有多个返回 适合做批量插入 批量更新 函数 有且
  • Sqlserver递归查询所有上级或所有下级成员

    菜单目录结构表 create table tb menu id int not null 主键id title varchar 50 标题 parent int parent id 查找所有上级节点 with cte parent id t
  • Picgo使用Gitee平台搭建图床照片无法显示

    1 问题 使用Hexo框架搭建个人博客 发现博客中图片无法显示 2 问题分析 查看图床 发现相册中图片无法显示 查阅多方网站 发现Gitee与Picgo配合使用时 图片文件不能大于1M 这主要因为Gitee查阅超过1M的文件需要登录的权限
  • PCL中的区域生长分割(region growing segmentation)

    在本博文中 我主要介绍如何在pcl RegionGrowing类中调用区域增长算法 首先注意一点 这里是region growing segmentation 不是color based region growing segmentatio
  • sql server 数据库连接方式分析、详解

    先画一张概况图 OLEDB方式连接 Sql身份验证模式 Provider SQLOLEDB data source server name initial catalog databasename uid username pwd pass