各种数据库连接串的配置收集

本文详细介绍了多种数据库(如SQL Server、Oracle、MySQL等)的连接配置方法,包括ODBC、OLEDB的不同配置示例,以及连接字符串中的各项参数含义。

数据库的连接串

数据库连接字符串的拼写规则的决定条件:

  • 连接的数据库的类型:SQL Server,Oracle,MySQL,Acess,MogoDB,Visual FoxPro(dBASE),Excel
  • 数据库驱动器:ODBC,OLE DB
  • 连接的模式:标准连接(Standard Security),信任连接(Trusted connection)
  • 网络协议:TCP/IP,Named Pipes

 

名称 网络协议库

dbnmpntw Win32 Named Pipes

dbmssocn Win32 Winsock TCP/IP

dbmsspxn Win32 SPX/IPX

dbmsvinn Win32 Banyan Vines

dbmsrpcn Win32 Multi-Protocol (Windows RPC)

 

连接参数表

连接参数
名称 描述
Application Name  应用程序名称或者当没有提供应用程序时为.Net SqlClient数据提供者
Data Source||Server||Address||Addr||Network Address 要连接的SQL Server实例的名字或者网络地址
Initial Catalog||Database 数据库名
Integrated Security||Trusted_Connection  连接是否为信任连接
Uid或User ID  SQL Server登录用户
Password或Pwd SQL Server帐户登录口令
Connect Timeout或者Connection Timeout 在中止连接请求,产生错误之前等待服务器连接的时间(以秒为单位)
Pooling  从合适的连接池中取出SQLConnection对象,或者必要时创建SQLConnection对象并把它增加到合适的连接池中 
Max Pool Size  连接池中允许的最大连接数
Min Pool Size 连接池中允许的最小连接数
AttachDBFilename或者extended properties或者Initial File Name 主要文件的名字,包括相关联数据库的全路径
Connection Lifetime 当一个连接返回到连接池,当前时间与连接创建时间的差值,如果时间段超过了指定的连接生存时间,此连接就被破坏。它用于聚集设置中在运行服务器和准备上线的服务器之间强制负载平衡。
Connection Reset 当连接从连接池移走时决定是否重置数据库连接。当设置为''false''时用于避免获得连接时的额外服务器往复代价。
Current Language 语言记录名称
Enlist  连接池自动列出创建线程的当前事务上下文中的连接
Network Library或Net ''dbmssocn'' 网络库用于建立与一个 SQL Server实例的连接。值包括dbnmpntw (命名管道), dbmsrpcn (多协议), dbmsadsn (Apple Talk), dbmsgnet (VIA), dbmsipcn (共享内存) 和 dbmsspxn (IPX/SPX), 和 dbmssocn (TCP/IP). 所连接的系统必须安装相应的动态链接库。如果你没有指定网络,当你使用一个局部的服务器 (例如, "." 或者 "(local)"),将使用共享内存
Packet Size SQL Server的一个实例通讯的网络包字节大小 
Workstation ID  连接到SQL Server的工作站名称 
Persist Security Info 

当连接已经打开或者一直处于打开状态时,敏感性的安全信息 (如口令)不会返回作为连接的一部分信息。

Pooling ''true'' 为真时,从合适的连接池中取出SQLConnection对象,或者必要时创建SQLConnection对象并把它增加到合适的连接池中

 

 

一, Sql Server

· ODBC

o 标准连接(Standard Security):

1)当服务器为本地时Server可以使用(local):"Driver={SQLServer};Server=(local);Database=pubs;Uid=sa;Pwd=123456"

2)当连接远程服务器时,需指定地址、端口号和网络库:"Driver={SQL Server};Server=180.166.105.142,2433;Database=pubs;Uid=sa;Pwd=123456"

o 信任连接(Trusted connection): (Microsoft Windows NT 集成了安全性)

"Driver={SQL Server};Server=Aron1;Database=pubs;Trusted_Connection=yes"或者"Driver={SQL Server};Server=Aron1;Database=pubs; Uid=;Pwd="

 

· OLE DB, OleDbConnection (.NET)

o 标准连接(Standard Security):

"Provider=sqloledb;Data Source=192.168.1.100,2433;Initial Catalog=pubs;Persist Security Info=True;User ID=sa;Password=M8BGRdafaRUpkYZ1OqyS"

o 信任连接(Trusted connection):

"Provider=sqloledb;Data Source=Aron1;Initial Catalog=pubs;Integrated Security=SSPI"

(如果连接一个具体的已命名SQLServer实例,使用Data Source=Servere Name\Instance Name;但仅适用于 SQLServer2000)例如:”Provider=sqloledb;Data Source=MyServerName\MyInstanceName;Initial Catalog=MyDatabaseName;User Id=MyUsername;Password=MyPassword;”

o 通过IP地址连接:

"Provider=sqloledb;Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=pubs;User ID=sa;Password=asdasd"

(DBMSSOCN=TCP/IP代替Named Pipes, Data Source的末尾是需要使用的端口号(缺省为1433))

 

二,Access

· ODBC

o 标准连接(Standard Security):

"Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;"

o 独占方式(Exclusive):

"Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Exclusive=1;Uid=admin;Pwd="

· OLE DB, OleDbConnection (.NET)

o 标准连接(Standard Security):

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\somepath\mydb.mdb;User Id=admin;Password=;"

o 组连接 (系统数据库)

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\somepath\mydb.mdb;Jet OLEDB:System Database=system.mdw;","admin", ""

o 带口令的连接:

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\somepath\mydb.mdb;Jet OLEDB:Database Password=MyDbPassword;","admin", ""

三,Oracle

· ODBC

"Driver={Microsoft ODBC for oracle};Server=OracleServer.world;Uid=Username;Pwd=asdasd;"

· OLE DB, OleDbConnection (.NET)

o 标准连接(Standard Security):

Microsoft的格式

“Provider=msdaora;Data Source=MyOracleDB;User Id=UserName;Password=asdasd;"

Oracle的格式

"Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=Username;Password=asdasd;"

注意:"Data Source=" 必须根据相应的命名方法设置为Net8名称。例如对于局部命名,它是tnsnames.ora中的别名,对于Oracle命名,它是Net8网络服务名

o 信任连接(Trusted Connection):

"Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;OSAuthent=1;"或者设置user ID为 "/"

"Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=/;Password=;"

· oracleConnection (.NET)

o 标准连接:

"Data Source=Oracle8i;Integrated Security=yes";(这只对Oracle 8i release 3或更高版本有效)

o MS Data Shape:

"Provider=MSDataShape.1;Persist Security Info=False;Data Provider=MSDAORA;Data Source=orac;user id=username;password=mypw"

四, MySQL

· ODBC

o 本地数据库:

"Driver={mySQL};Server=mySrvName;Option=16834;Database=mydatabase;" (Sever参数也可以使用localhost作为其值)

o 远程数据库:

"Driver={mySQL};Server=data.domain.com;Port=3306;Option=131072;Stmt=;Database=my-database;Uid=username;Pwd=password;"

Option值 取值的含义

1 客户端不能处理MyODBC返回一列真实宽度的情况

2 客户端不能处理MySQL返回影响的行的真实值的情况如果设置此标志,MySQL返回’found rows’。 MySQL 3.21.14或更新版才能生效

4 在c:\myodbc.log中生成一个调试日志。这与在`AUTOEXEC.BAT''中的设置MYSQL_DEBUG=d:t:O,c::\myodbc.log相同

8 对于结果和参数不设置任何包限制

16 不使驱动器弹出问题

32 使用或去除动态游标支持。这在MyODBC 2.50中是不允许的

64 在''database.table.column''中忽略数据库名字的使用

128 强制使用ODBC管理器游标

256 去除扩展取值(fetch)的使用

512 充满char字段满长度

1024 SQLDescribeCol()函数返回完全满足条件的列名

2048 使用压缩的服务器/客户端协议

4096 告诉服务器在函数后和''(''前忽略空格 (PowerBuilder需要)。这将产生所有函数名关键词

8192 使用命名管道连接运行在NT上的Mysqld服务器

16384 将LONGLONG列改为INTl列(有些应用不能处理LONGLONG列)

32768 从SQLTables中返回’user’作为Table_qualifier和Table_owner

66536 从客户端读参数,从`my.cnf''读ODBC群

131072 增加一些额外的安全性检查

如果你需要许多选项,你应该把以上标志相加。

· OLE DB, OleDbConnection (.NET)

o 标准连接:

"Provider=MySQLProv;Data Source=mydb;User Id=UserName;Password=asdasd;"

Data Source是MySQL数据库的名字,也可以使用server=localhost;DB=test

· MySqlConnection (.NET)

o eInfoDesigns.dbProvider:

"Data Source=server;Database=mydb;User ID=username;Password=pwd;Command Logging=false"

只适用于 eInfoDesigns dbProvider, 附加到 .NET

 

 

五,Interbase

· ODBC, Easysoft

o 本地计算机:

"Driver={Easysoft IB6 ODBC};Server=localhost;Database=localhost:C:\mydatabase.gdb;Uid=username;Pwd=password"

o 远程计算机:

"Driver={Easysoft IB6 ODBC};Server=ComputerName;Database=ComputerName:C:\mydatabase.gdb;Uid=username;Pwd=password"

· ODBC, Intersolv

o 本地计算机:

"Driver={INTERSOLV InterBase ODBC Driver (*.gdb)};Server=localhost;Database=localhost:C:\mydatabase.gdb;Uid=username;Pwd=password"

o 远程计算机:

"Driver={INTERSOLV InterBase ODBC Driver (*.gdb)};Server=ComputerName;Database=ComputerName:C:\mydatabase.gdb;Uid=username;Pwd=password"

这个驱动器现在由 DataDirect Technologies来提供 (以前由Intersolv提供)

六, OLE DB, SIBPROvider

o 标准连接:

"provider=sibprovider;location=localhost:;data source=c:\databases\gdbs\mygdb.gdb;user id=SYSDBA;password=masterkey"

o 指定字符集:

"provider=sibprovider;location=localhost:;data source=c:\databases\gdbs\mygdb.gdb;user id=SYSDBA;password=masterkey;character set=ISO8859_1"

o 指定角色:

"provider=sibprovider;location=localhost:;data source=c:\databases\gdbs\mygdb.gdb;user id=SYSDBA;password=masterkey;role=DIGITADORES"

· 需要了解更多请链接到Interbase的如下Borland开发者网络文章http://community.borland.com/article/0,1410,27152,00.html

七,IBM DB2

· OLE DB, OleDbConnection (.NET) from ms

o TCP/IP:

"Provider=DB2OLEDB;Network Transport Library=TCPIP;Network Address=XXX.XXX.XXX.XXX;Initial Catalog=MyCtlg;Package Collection=MyPkgCol;Default Schema=Schema;User ID=MyUser;Password=MyPW"

o APPC:

"Provider=DB2OLEDB;APPC Local LU Alias=MyAlias;APPC Remote LU Alias=MyRemote;Initial Catalog=MyCtlg;Package Collection=MyPkgCol;Default Schema=Schema;User ID=MyUser;Password=MyPW"

AS400

· ODBC

" Driver={Client Access ODBC Driver (32-bit)};System=myAS400;Uid=myUsername;Pwd=myPassword"

· OLE DB, OleDbConnection (.NET)

"Provider=IBMDA400;Data source=myAS400;User Id=myUsername;Password=myPassword;"

八,Sybase

· ODBC

o Sybase System 12 (或 12.5) Enterprise Open Client标准连接:

"Driver={SYBASE ASE ODBC Driver};Srvr=Aron1;Uid=username;Pwd=password"

o Sybase System 11标准连接:

"Driver={SYBASE SYSTEM 11};Srvr=Aron1;Uid=username;Pwd=password;"

o Intersolv 3.10:

"Driver={INTERSOLV 3.10 32-BIT Sybase};Srvr=Aron1;Uid=username;Pwd=password;"

o Sybase SQL Anywhere (以前为Watcom SQL ODBC driver):

"ODBC; Driver=Sybase SQL Anywhere 5.0; DefaultDir=c:\dbfolder\;Dbf=c:\mydatabase.db;Uid=username;Pwd=password;Dsn="""""

注意: 对于在末尾紧跟着DSN 参数被引用的双引号(VB语法), 你必须改变符合你所使用的语言所指定的引用符号语法。DSN参数为空实际上非常重要,如果不包括的话将导致7778错误。

· OLE DB

o Adaptive Server Anywhere (ASA):

"Provider=ASAProv;Data source=myASA"

o Adaptive Server Enterprise (ASE)(带数据源为.IDS文件):

"Provider=Sybase ASE OLE DB Provider; Data source=myASE"

注意你必须使用数据管理器来创建一个数据源.IDS文件.这些.IDS 文件类似于ODBC DSNs.

九, Visual FoxPro(dBASE)

· ODBC

o dBASE:

" Driver={Microsoft dBASE Driver (*.dbf)}; DriverID=277;Dbq=c:\\DatabasePath"

注意在书写sql语句时必须指定文件名(如“Select Name, Address From Clients.dbf”).

o Visual Foxpro(有数据库容器):

" Driver={Microsoft Visual Foxpro Driver};UID=; SourceType=DBC;SourceDB=C:\\DatabasePath\\MyDatabase.dbc;Exclusive=No "

o Visual Foxpro(无数据库容器):

" Driver={Microsoft Visual Foxpro Driver};UID=; SourceType=DBF;SourceDB=C:\\DatabasePath\\MyDatabase.dbc;Exclusive=No"

· OLE DB, OleDbConnection (.NET)

o 标准连接:

"Provider=vfpoledb;Data Source=C:\\DatabasePath\\MyDatabase.dbc;"

十,Excel

· ODBC

o 标准连接(Standard Security):

" Driver={Microsoft Excel Driver (*.xls)};DriverId=790; Dbq =C:\\DatabasePath\\DBSpreadSheet.xls;DefaultDir=c:\\databasepath;"

· OLE DB Provider for Microsoft Jet

o 标准连接(Standard Security):

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\DatabasePath\\DBSpreadSheet.xls;Extended Properties=\"\"Excel 8.0;HDR=Yes;\"\";"

注意:如果"HDR=Yes",那么提供者不会在记录集中包括选择的第一行,如果,那么提供者将在记录集中包括单元范围(或已经命名范围)的第一行

十一,Text

· ODBC

o 标准连接(Standard Security):

" Driver={Microsoft Text Driver (*.txt; *.csv)}; Dbq=C:\\DatabasePath\\;Extensions=asc,csv,tab,txt;"

如果文本文件使用tab作为分隔符,你必须创建schema.ini文件,你必须在连接串中使用Format=TabDelimited选项。

注意:你必须在sql语句中指定文件名(例如"Select Name, Address From Clients.csv")

· OLE DB Provider for Microsoft Jet

o 标准连接(Standard Security):

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\DatabasePath\\;Extended Properties=\"\"text;"HDR=Yes;FMT=Delimited;\"\";"

注意在书写sql语句时必须指定文件名(如“Select Name, Address From Clients.txt”).

ODBC DSN

" DSN=MyDSN;Uid=MyUsername;Pwd=MyPassword;"

OLE DB Provider for ODBC Databases

使用DSN进行连接:

"Provider=MSDASQL;PersistSecurityInfo=False;Trusted_Connection=Yes;Data Source=MyDSN;catalog=MyDatabase;"

OLE DB Provider for OLAP

"Provider=MSOLAP;Data Source=MyOLAPServerName;Initial Catalog=MyOLAPDatabaseName;"

<think>我们正在讨论如何修改数据库连接字符。根据提供的引用,不同的数据库(如SQLServer、Oracle、MySQL、人大金仓)连接字符配置方法不同。用户需要的是配置方法的示例。根据引用[1]和[3]:SQLServer的连接字符配置非常重要,它包含连接到数据库所需的信息。引用[3]还提到有两种身份验证方式:Windows身份验证和SQLServer身份验证。引用[4]提到人大金仓数据库的子数据库(schema)连接字符配置与普通数据库不同。因此,我将提供几种常见数据库连接字符的修改方法和示例:1.SQLServer:-Windows身份验证:`"Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;"`-SQLServer身份验证:`"Server=myServerAddress;Database=myDataBase;UserId=myUsername;Password=myPassword;"`2.Oracle:-基本格式:`"UserId=myUsername;Password=myPassword;DataSource=myDataSource;"`-或者使用TNS:`"DataSource=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=myHost)(Port=myPort))(CONNECT_DATA=(SERVICE_NAME=myServiceName)));UserId=myUsername;Password=myPassword;"`3.MySQL:-基本格式:`"Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;"`4.人大金仓(KingbaseES):-根据引用[4],人大金仓使用schema来实现子数据库,因此在连接字符中需要指定`SearchPath`参数(类似于PostgreSQL的`search_path`)。-示例:`"Server=myServerAddress;Port=myPort;Database=myDatabase;UserId=myUsername;Password=myPassword;SearchPath=my_schema;"`注意:实际修改时,需要将示例中的占位符(如myServerAddress,myDataBase等)替换为实际的值。配置方法:-在应用程序中(如C#、Java、Python等),连接字符通常存储在配置文件中(如app.config,web.config,application.properties,.env等)或者直接在代码中设置(但不推荐将敏感信息放在代码中)。-修改时,打开对应的配置文件,找到连接字符配置项,替换为正确的连接字符。例如,在.NET应用程序的web.config文件中:```xml<connectionStrings><addname="MyDbConnection"connectionString="Server=localhost;Database=myDB;UserId=sa;Password=123456;"providerName="System.Data.SqlClient"/></connectionStrings>```在JavaSpringBoot的application.properties文件中:```propertiesspring.datasource.url=jdbc:sqlserver://localhost:1433;databaseName=myDBspring.datasource.username=saspring.datasource.password=123456```在Python的Django项目的settings.py中:```pythonDATABASES={'default':{'ENGINE':'django.db.backends.mysql','NAME':'myDB','USER':'myUser','PASSWORD':'mypassword','HOST':'localhost','PORT':'3306',}}```请根据您的数据库类型和应用程序框架选择相应的配置方式。§§相关问题§§1.如何保护数据库连接字符中的敏感信息(如密码)?2.连接字符中常用的参数有哪些?各自的作用是什么?3.数据库连接字符配置错误会导致哪些问题?如何排查?4.如何在不同环境中(开发、测试、生产)管理不同的连接字符?</think> ### 数据库连接字符配置方法与示例 根据提供的引用资料[^1][^3][^4],以下是主要数据库连接字符配置方法和示例: #### 📌 通用配置方法 1. **识别数据库类型**:确认需要连接的是 SQL Server、Oracle、MySQL 还是其他数据库(如人大金仓) 2. **确定认证方式**: - Windows 身份验证(集成安全) - SQL Server 账号密码认证 3. **收集连接参数**: - 服务器地址(IP/域名) - 数据库名称 - 端口号(默认端口可省略) - 用户名/密码(非Windows认证时) 4. **按格式组装字符** #### 🔧 各数据库配置示例 **SQL Server**(引用[^1][^3]): ```csharp // Windows 身份验证 "Server=myServerName;Database=myDataBase;Integrated Security=True;" // SQL 账号认证 "Server=myServerName,1433;Database=myDataBase;User Id=myUsername;Password=myPassword;" ``` **Oracle**: ```csharp "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=myServer)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)));User Id=myUsername;Password=myPassword;" ``` **MySQL**: ```csharp "Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;" ``` **人大金仓**(引用[^4]): ```csharp // 连接数据库(schema) "Server=myServer;Port=54321;Database=mainDB;Uid=myUser;Pwd=myPass;SearchPath=my_schema;" ``` #### ⚙️ 修改位置(常见场景) 1. **.NET 应用**(引用[^2]): 修改 `app.config` 或 `web.config`: ```xml <connectionStrings> <add name="MyDB" connectionString="Server=.;Database=AppDB;Integrated Security=True;" providerName="System.Data.SqlClient" /> </connectionStrings> ``` 2. **Java 应用**: 修改 `application.properties`: ```properties spring.datasource.url=jdbc:sqlserver://localhost:1433;databaseName=AppDB spring.datasource.username=sa spring.datasource.password=P@ssw0rd ``` 3. **Python Django**: 修改 `settings.py`: ```python DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'AppDB', 'USER': 'admin', 'PASSWORD': 'SecurePass123', 'HOST': 'dbserver.example.com', 'PORT': '3306', } } ``` #### 🔐 安全注意事项 1. 密码加密:使用配置加密工具(如 ASP.NET 的 `aspnet_regiis`) 2. 避免硬编码:通过环境变量获取敏感信息 3. 连接配置:添加 `Max Pool Size=100;` 等参数优化性能 > 提示:人大金仓数据库的子数据库通过 schema 实现,而非独立 database,需要特别注意 `SearchPath` 参数的使用[^4]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值