데이터 원본 이름
Data source name컴퓨팅에서 데이터 소스 이름(DSN, "데이터 소스"는 데이터베이스와 별도로 다른 저장소로 구성될 수 있지만 데이터베이스 소스 이름으로도 알려져 있다)은 데이터 소스에 대한 연결을 설명하는 데 사용되는 관련 데이터 구조를 가진 문자열이다.ODBC와 관련하여 가장 일반적으로 사용되는 DSN은 JDBC 및 기타 데이터 액세스 메커니즘에도 존재한다.이 용어는 종종 "연결 문자열"과 중복된다.대부분의 시스템은 DSN 또는 연결 문자열을 구분하지 않으며 이 용어는 종종 서로 교환하여 사용할 수 있다.
DSN 속성은 다음을 포함할 수 있지만 이에 국한되지는 않는다.
- 데이터 원본 이름
- 데이터 소스의 위치
- 데이터 원본에 액세스할 수 있는 데이터베이스 드라이버 이름
- 데이터 액세스를 위한 사용자 ID(필요한 경우)
- 데이터 액세스를 위한 사용자 암호(필요한 경우)
클라이언트 시스템의 시스템 관리자는 일반적으로 각 관련 데이터 소스에 대해 별도의 DSN을 생성한다.
DSN 표준화는 다양한 애플리케이션(예:Apache/PHP 및 IIS/ASP)는 공유 데이터 소스에 액세스할 때 이를 활용할 수 있다.
데이터 원본 이름 유형
DSN에는 두 가지 종류가 있다.
- 시스템 DSN - 집합 구성 파일(예: /etc/odbc.ini, ~/.odbc.ini) 및/또는 시스템 리소스(예: 윈도우즈 레지스트리 HKLM\Software\)에 저장됨ODBC\odbc.ini)
- 파일 DSN - 파일당 하나의 DSN으로 파일 시스템에 저장됨
이것들은 더 세분화되어 있다.
- 시스템 DSN - 중앙 집중식 위치(예: 중앙 집중식 위치)에 저장된 시스템의 모든 프로세스와 사용자가 액세스할 수 있음
/etc/odbc.ini
,//etc/odbc_file_dsns/<filename>
) - 사용자 DSN – DSN을 생성한 사용자만 액세스할 수 있으며, 사용자별 위치(예:
/~/.odbc.ini
,/~/odbc_file_dsns/<filename>
)
사용 예
소프트웨어(예: Crystal Reports, Microsoft Excel, PHP, Perl, Python, Ruby) 사용자는 DSN에 대한 연결을 설정하여 데이터 소스에 CRUD(Create, Read, Update, Delete) 쿼리를 제출할 수 있다.
DSN 연결을 여는 ASP(VBScript) 코드는 다음과 같을 수 있다.
어둡다 DatabaseObject1 세트 DatabaseObject1 = 서버.CreateObject("ADODB.Connection") DatabaseObject1.개방하다("DSN=예:")
PHP에서 PEE:외부 DSN(예: 연결 문자열을 사용하는 "DSN-less 연결") 없이 연결을 여는 DB 패키지
필요_한 번("DB.php"); //$properties = "<driver>:///<password>@[password]:<port>/<port>"; 달러화 = "mysql://john:pass@localhost:ss6/my_db"; $db = DB::연결하다(달러화);
[필요하다]
PDO를 사용한 PHP.
달러화 = "mysql:host=localhost;dbname=messages"; $dbh = 새로운 PDO(달러화, 달러화, $password);
Perl에서는 Perl DBI 모듈을 사용하여 각 드라이버에 DSN 속성에 대한 고유한 구문이 있다.DBI가 요구하는 유일한 요건은 사용자 이름과 암호를 제외한 모든 정보가 단일 문자열 인수로 제공된다는 것이다.
나의 달러화 = "DBI:Pg:database=finance;host=db.example.com;port=$port"; 달러화 = "DBI:mysql:database=$database;host=$hostname;port=$port"; 달러화 = "DBI:Orace:host=$host;sid=$sid;port=$port"; 달러화 = "DBI:SQLite:dbname=$dbfilename"; 나의 $dbh = DBI->연결하다(달러화,'username','암호');
참고 항목