데이터 원본 이름

Data source name

컴퓨팅에서 데이터 소스 이름(DSN, "데이터 소스"는 데이터베이스와 별도로 다른 저장소로 구성될 수 있지만 데이터베이스 소스 이름으로도 알려져 있다)은 데이터 소스에 대한 연결을 설명하는 데 사용되는 관련 데이터 구조를 가진 문자열이다.ODBC와 관련하여 가장 일반적으로 사용되는 DSN은 JDBC 및 기타 데이터 액세스 메커니즘에도 존재한다.이 용어는 종종 "연결 문자열"과 중복된다.대부분의 시스템은 DSN 또는 연결 문자열을 구분하지 않으며 이 용어는 종종 서로 교환하여 사용할 수 있다.

DSN 속성은 다음을 포함할 수 있지만 이에 국한되지는 않는다.

  • 데이터 원본 이름
  • 데이터 소스의 위치
  • 데이터 원본에 액세스할 수 있는 데이터베이스 드라이버 이름
  • 데이터 액세스를 위한 사용자 ID(필요한 경우)
  • 데이터 액세스를 위한 사용자 암호(필요한 경우)

클라이언트 시스템의 시스템 관리자는 일반적으로 각 관련 데이터 소스에 대해 별도의 DSN을 생성한다.

DSN 표준화는 다양한 애플리케이션(예:Apache/PHPIIS/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','암호'); 

참고 항목