이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : 5.10. 와이즈 스포츠 토토 베트맨버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

5.7. 스포츠 토토 베트맨

aPostgreSQL데이터베이스 클러스터 하나 이상의 명명 된 데이터베이스가 포함되어 있습니다. 사용자 및 사용자 그룹 전체 클러스터에서 공유되지만 다른 데이터는 공유되지 않습니다. 데이터베이스 전체. 서버에 대한 특정 클라이언트 연결은 할 수 있습니다 단일 데이터베이스에서 데이터 만 액세스하는 것입니다. 연결 요청.

참고 :클러스터 사용자가 반드시 가지고있는 것은 아닙니다 클러스터의 모든 데이터베이스에 액세스 할 수있는 권한. 사용자 이름을 공유한다는 것은 다르기가 없다는 것을 의미합니다. 명명 된 사용자,Joe동일한 클러스터의 데이터베이스; 그러나 시스템은 될 수 있습니다 허용 구성Joe액세스 일부 데이터베이스 만.

데이터베이스에는 하나 이상의 이름이 포함되어 있습니다스포츠 토토 베트맨,이 테이블이 포함되어 있습니다. 스포츠 토토 베트맨 또한 데이터 유형을 포함하여 다른 종류의 명명 된 객체도 포함합니다. 기능 및 연산자. 동일한 개체 이름을 사용할 수 있습니다 갈등이없는 다른 스포츠 토토 베트맨; 예를 들어, 둘 다Schema1andmyschemacan 이름이 포함 된 테이블 포함mytable. 같지 않은 데이터베이스, 스포츠 토토 베트맨는 엄격하게 분리되지 않았습니다. 사용자가 액세스 할 수 있습니다. 그가 연결된 데이터베이스의 스포츠 토토 베트맨의 객체 그가 그렇게 할 특권이 있다면.

사용하려는 몇 가지 이유가 있습니다. 스포츠 토토 베트맨 :

  • 많은 사용자가 하나의 데이터베이스없이 하나의 데이터베이스를 사용할 수 있도록합니다 서로 방해합니다.

  • 데이터베이스 개체를 논리 그룹으로 구성 할 수 있습니다 더 관리 가능합니다.

  • 타사 응용 프로그램은 별도의 스포츠 토토 베트맨에 넣을 수 있습니다 그래서 그들은 다른 개체의 이름과 충돌하지 않습니다.

스포츠 토토 베트맨는 운영 체제의 디렉토리와 유사합니다 스포츠 토토 베트맨를 중첩 할 수 없다는 점을 제외하고 레벨.

5.7.1. 스포츠 토토 베트맨 생성

스포츠 토토 베트맨를 만들려면를 사용하십시오.스포츠 토토 베트맨 생성명령. 줘 스포츠 토토 베트맨 선택한 이름. 예를 들어:

스포츠 토토 베트맨 생성 myschema;

스포츠 토토 베트맨에서 개체를 작성하거나 액세스하려면 a 쓰기적격 이름스포츠 토토 베트맨 이름으로 구성되어 있습니다 그리고 점으로 분리 된 테이블 이름 :

스포츠 토토 베트맨.테이블

이것은 테이블 이름이 예상되는 곳에서 작동합니다. 테이블 수정 명령 및 데이터 액세스 명령 다음 장에서 논의했습니다. (간결하게 우리는 말할 것입니다 테이블의 경우에만이지만 동일한 아이디어는 다른 종류의 다른 종류에 적용됩니다. 유형 및 함수와 같은 명명 된 개체.)

실제로 더 일반적인 구문

데이터베이스.스포츠 토토 베트맨.테이블

도 사용할 수 있지만 현재는입니다.프로 포르마SQL 표준 준수. 데이터베이스 이름을 작성하는 경우와 동일해야합니다. 연결된 데이터베이스.

새 스포츠 토토 베트맨에서 테이블을 만들려면 다음을 사용합니다.

테이블 작성 myschema.mytable (
 ...
);

비어 있으면 스포츠 토토 베트맨를 삭제하려면 (모든 개체가 드롭), 사용 :

스포츠 토토 베트맨 DROP MYSCHEMA;

포함 된 모든 객체를 포함하여 스포츠 토토 베트맨를 삭제하려면 사용 :

스포츠 토토 베트맨 DROP SCHEMA MYSCHEMA CASCADE;

참조스포츠 토토 : 문서 : 9.2 : 종속성 추적a 이 뒤에있는 일반적인 메커니즘에 대한 설명

종종 다른 사람이 소유 한 스포츠 토토 베트맨를 만들고 싶습니다. (이것은 활동을 제한하는 방법 중 하나이기 때문에 사용자가 잘 정의 된 네임 스페이스를 사용하십시오). 그것에 대한 구문 이다:

스포츠 토토 베트맨 생성Schemaname승인사용자 이름;

스포츠 토토 베트맨 이름을 생략 할 수도 있습니다.이 경우 스포츠 토토 베트맨 이름은 사용자 이름과 동일합니다. 보다섹션 5.7.6이것이 유용 할 수있는 방법.

스포츠 토토 베트맨 이름으로 시작하는PG_are 시스템 목적으로 예약되어 있으며 작성할 수 없습니다 사용자.

5.7.2. 공공 스포츠 토토 베트맨

이전 섹션에서는 테이블이없는 테이블을 만들었습니다 스포츠 토토 베트맨 이름을 지정합니다. 기본적으로 그러한 테이블 (및 기타 객체)는 자동으로라는 스포츠 토토 베트맨에 넣습니다."public". 모든 새로운 데이터베이스에는 그러한 부분이 포함되어 있습니다 개요. 따라서 다음은 동일합니다.

테이블 제품 생성 (...);

및 :

테이블 생성 public.products (...);

5.7.3. 스포츠 토토 베트맨 검색 경로

자격을 갖춘 이름은 쓰기가 지루하고 종종 최고입니다. 어쨌든 특정 스포츠 토토 베트맨 이름을 응용 프로그램에 연결하지 마십시오. 따라서 테이블은 종종에 의해 언급됩니다.자격이없는 이름테이블 이름. 시스템은 어떤 테이블이 의미하는지 결정합니다 다음검색 경로, a 살펴볼 스포츠 토토 베트맨 목록. 첫 번째 일치 테이블 검색 경로는 원하는 사람으로 간주됩니다. 일치하지 않는 경우 검색 경로에서 일치하더라도 오류 가보고됩니다. 테이블 이름은 데이터베이스의 다른 스포츠 토토 베트맨에 존재합니다.

검색 경로에 명명 된 첫 번째 스포츠 토토 베트맨를 현재 스포츠 토토 베트맨. 첫 번째 스포츠 토토 베트맨가 검색되는 것 외에도, 그것 또한이면 새 테이블이 만들어지는 스포츠 토토 베트맨입니다.테이블 만들기명령이 지정되지 않습니다 스포츠 토토 베트맨 이름.

현재 검색 경로를 표시하려면 다음을 사용하십시오 명령:

show search_path;

기본 설정 에서이 반환이 반환됩니다.

search_path
--------------
 "$ user", public

첫 번째 요소는 동일한 이름의 스포츠 토토 베트맨를 지정합니다. 현재 사용자를 검색해야합니다. 그러한 스포츠 토토 베트맨가없는 경우 입력이 무시됩니다. 두 번째 요소는 우리가 이미 본 공공 스포츠 토토 베트맨.

존재하는 검색 경로의 첫 번째 스포츠 토토 베트맨는 다음과 같습니다. 새 개체를 만드는 기본 위치. 그것이 이유입니다 기본적으로 객체는 공개 스포츠 토토 베트맨에서 생성됩니다. 언제 객체는 스포츠 토토 베트맨없이 다른 컨텍스트에서 참조됩니다 자격 (테이블 수정, 데이터 수정 또는 쿼리 명령) 검색 경로는 일치하는 객체가 될 때까지 트래버스됩니다. 발견됩니다. 따라서 기본 구성에서 자격이없는 액세스는 다시 대중에게만 언급 할 수 있습니다 개요.

새로운 스포츠 토토 베트맨를 경로에 넣으려면 다음을 사용합니다.

Search_Path를 MySchema, public;에 설정하십시오.

(우리는 생략$ user여기서 우리 즉각적인 필요가 없습니다.) 그리고 우리는 액세스 할 수 있습니다. 스포츠 토토 베트맨 자격이없는 테이블 :

드롭 테이블 mytable;

이후myschema첫 번째입니다 경로의 요소, 새로운 객체는 기본적으로 그것.

우리는 또한 다음과 같이 쓸 수 있습니다.

search_path를 myschema로 설정하십시오;

그러면 우리는 더 이상 공개 스포츠 토토 베트맨에 액세스 할 수 없습니다. 명백한 자격. 에 대해서는 특별한 것이 없습니다 기본적으로 존재한다는 것을 제외하고 공개 스포츠 토토 베트맨. 그럴 수 있습니다 도 떨어졌다.

참조롤 토토 PostgreSQL : 문서 : 9.2 : 시스템 정보 기능스포츠 토토 베트맨 검색 경로를 조작하는 다른 방법.

검색 경로는 데이터 유형 이름과 동일한 방식으로 작동합니다. 테이블 이름과 마찬가지로 함수 이름 및 연산자 이름. 데이터 유형 및 기능 이름은 정확히 테이블 이름과 마찬가지로. 유자격을 작성 ​​해야하는 경우 표현식에 운영자 이름에는 특별 조항이 있습니다. 당신은 작성해야합니다

연산자 (스포츠 토토 베트맨.운영자)

이것은 구문 모호성을 피하기 위해 필요합니다. 예 이다:

선택 3 연산자 (PG_CATALOG.+) 4;

실제로는 일반적으로 검색 경로에 의존합니다. 운영자, 아무것도 쓰지 않아도됩니다. 저것.

5.7.4. 스포츠 토토 베트맨 및 특권

기본적으로 사용자는 스포츠 토토 베트맨의 객체에 액세스 할 수 없습니다. 소유하지 마십시오. 이를 허용하기 위해 스포츠 토토 베트맨의 소유자는 그만큼usage스포츠 토토 베트맨의 권한. 에게 사용자가 스포츠 토토 베트맨에서 객체를 사용할 수 있도록합니다. 추가 권한은 적절하게 부여되어야 할 수도 있습니다 대상을 위해.

사용자는 누군가에게 객체를 만들 수 있습니다. else의 스포츠 토토 베트맨. 그것을 허용하기 위해,Create스포츠 토토 베트맨의 권한이 있어야합니다 부여된. 기본적으로 모든 사람이Createandusage스포츠 토토 베트맨의 권한public. 이것 주어진 데이터베이스에 연결할 수있는 모든 사용자가 허용합니다. 그 객체를 만들려면public스포츠 토토 베트맨. 당신이 그것을 허용하고 싶지 않다면, 당신은 그것을 취소 할 수 있습니다 특권:

공개에서 스포츠 토토 베트맨 대중에 대한 Revoke Create;

(첫 번째"public"is 스포츠 토토 베트맨, 두 번째"public"평균"모든 사용자". 첫 번째 의미에서 두 번째 의미에서는 식별자이므로 핵심 단어이므로 다른 대문자; 의 지침을 상기섹션 4.1.1.)

5.7.5. 시스템 카탈로그 스포츠 토토 베트맨

외에public및 사용자가 제작 한 스포츠 토토 베트맨, 각 데이터베이스에는가 포함됩니다.PG_CATALOG시스템을 포함하는 스포츠 토토 베트맨 테이블 및 모든 내장 데이터 유형, 기능 및 연산자.PG_CATALOG항상입니다 검색 경로의 효과적으로 일부. 이름이없는 경우 명시 적으로 경로에서 암시 적으로 검색됩니다검색 Path의 스포츠 토토 베트맨. 이렇게하면 내장 이름이 항상있을 수 있습니다 찾을 수 있습니다. 그러나 명시 적으로 배치 할 수 있습니다PG_CATALOG검색 경로 끝에서 사용자 정의 이름이 내장 이름을 재정의하는 것을 선호합니다.

inPostgreSQL버전 7.3 이전, 테이블 이름은PG_예약되었습니다. 이것은 더 이상 사실이 아닙니다 : 당신 원하는 경우, 비 시스템에서 그러한 테이블 이름을 만들 수 있습니다. 개요. 그러나 그러한 이름을 계속 피하는 것이 가장 좋습니다. 향후 버전이라면 충돌을 겪지 않도록하십시오. 테이블과 동일한 시스템 테이블을 정의합니다. ( 기본 검색 경로, 테이블에 대한 자격이없는 참조 그런 다음 이름은 대신 시스템 테이블로 해결됩니다.) 시스템 테이블은 로 시작하는 이름PG_자격이없는 사용자 테이블 이름과 오랫동안 충돌하지 않습니다. 사용자는를 피합니다.PG_prefix.

5.7.6. 사용 패턴

스포츠 토토 베트맨를 사용하여 여러 가지 방법으로 데이터를 구성 할 수 있습니다. 권장되는 몇 가지 사용 패턴이 있습니다. 기본 구성에 의해 쉽게 지원됩니다 :

  • 스포츠 토토 베트맨를 만들지 않으면 모든 사용자가 액세스 할 수 있습니다. 공개 스포츠 토토 베트맨는 암시 적으로. 이것은 상황을 시뮬레이션합니다 스포츠 토토 베트맨를 전혀 사용할 수없는 곳. 이 설정입니다 주로 단일 사용자 만 있거나 데이터베이스에서 협력하는 사용자는 거의 없습니다. 이 설정은 또한 허용합니다 비 스포츠 토토 베트맨 인식 세계에서 부드러운 전환.

  • 동일한 이름으로 각 사용자에 대한 스포츠 토토 베트맨를 만들 수 있습니다. 그 사용자로서. 기본 검색 경로가 시작된다는 것을 상기하십시오 와 함께$ user사용자 이름. 따라서 각 사용자에게 별도의 스포츠 토토 베트맨가있는 경우 그들은 기본적으로 자신의 스포츠 토토 베트맨에 액세스합니다.

    이 설정을 사용하면 취소 할 수도 있습니다. 공개 스포츠 토토 베트맨에 대한 액세스 (또는 전적으로 삭제) 사용자는 자신의 스포츠 토토 베트맨로 진정으로 제한됩니다.

  • 공유 응용 프로그램을 설치하려면 (테이블을 사용할 테이블 모두, 제 3자가 제공 한 추가 기능, 등), 별도의 스포츠 토토 베트맨에 넣으십시오. 부여하는 것을 잊지 마십시오 다른 사용자가 액세스 할 수있는 적절한 권한 그들을. 그런 다음 사용자는 이러한 추가 객체를 다음과 같이 참조 할 수 있습니다 스포츠 토토 베트맨 이름으로 이름을 자격하거나 추가 스포츠 토토 베트맨는 검색 경로로 향합니다 선택하다.

5.7.7. 이식성

SQL 표준에서 동일하게 물체의 개념 다른 사용자가 소유하고있는 스포츠 토토 베트맨는 존재하지 않습니다. 게다가, 일부 구현으로 인해 스포츠 토토 베트맨를 만들 수 없습니다. 소유자와 다른 이름을 가지고 있습니다. 사실, 개념 스포츠 토토 베트맨와 사용자의 데이터베이스 시스템에서 거의 동일합니다. 이는 기준. 따라서 많은 사용자가 자격을 갖춘 이름을 고려합니다 정말로 구성사용자 이름.TableName. 이것은 방법입니다postgresql당신이 효과적으로 행동 할 것입니다 모든 사용자를위한 사용자 별 스포츠 토토 베트맨를 만듭니다.

또한 a의 개념은 없습니다.publicSQL 표준의 스포츠 토토 베트맨. 최대 표준을 준수하면 사용해서는 안됩니다 (아마도 제거)public스포츠 토토 베트맨.

물론 일부 SQL 데이터베이스 시스템이 구현되지 않을 수 있습니다 스포츠 토토 베트맨 또는 허용하여 네임 스페이스 지원을 제공합니다 (아마도 제한된) 교차-대사 액세스. 일 해야하는 경우 이러한 시스템을 사용하면 최대 이식성이 달성됩니다 스포츠 토토 베트맨를 전혀 사용하지 않음.