액세스 제어

저장소 엔진에는 객체에 대한 액세스를 제어하는 두 가지 기능이 있습니다. 객체 소유권 및 액세스 권한.

객체 소유권 #

소유자와 함께 저장소 객체가 생성됩니다. 소유자는 객체를 만든 사용자, 시스템 소유자 또는 코드 런타임으로 객체를 만들 때 할당된 소유자입니다.

코드 런타임에서 객체를 작성할 때 소유자는 명시적으로 설정되지 않는 한 시스템 사용자입니다. 클라이언트에서 저장소 객체를 작성하는 사용자는 기본적으로 소유자로 설정됩니다.

시스템 소유 객체는 시스템 사용자로 생성되며 서버에서 nil UUID(00000000-0000-0000-0000-000000000000)로 표시됩니다. 시스템 소유 객체에는 클라이언트가 가져오기 전에 공개 읽기 액세스 권한이 있어야 합니다.

이 코드 예제는 시스템이 소유한 객체(공개 읽기로 표시됨)를 검색하는 방법을 보여줍니다.

코드 런타임을 사용하여 객체를 가져올 수도 있습니다. 코드 런타임은 서버에서 권한 부여 코드로 실행되기 때문에 액세스 권한에 대한 표준 규칙에서 제외됩니다.

객체 권한 #

객체에는 객체를 작성하거나 업데이트할 때 해당 객체의 소유자에게 적용되는 권한이 있습니다:

  • ReadPermission 의 경우 Public Read (2), Owner Read (1) 또는 No Read (0)입니다.
  • WritePermission 의 경우 Owner Write (1) 또는 No Write (0)입니다.

이러한 권한은 서버가 권한이 있고 항상 객체를 읽고 쓸 수 있으므로 코드 런타임을 통해 저장소 엔진과 상호 작용할 때 무시됩니다. 따라서 No Read / No Write 권한은 클라이언트가 객체를 읽고 쓸 수 없음을 의미합니다.

Owner ReadOwner Write 권한이 있는 객체는 이 객체를 소유한 사용자만 액세스하거나 수정할 수 있습니다. 다른 클라이언트는 이 객체에 액세스할 수 없습니다.

Public Read 모든 사용자가 해당 객체를 읽을 수 있음을 의미합니다. 이것은 사용자가 자신의 게임 상태 또는 그 일부를 다른 사용자와 공유해야 하는 게임 플레이의 경우 매우 유용합니다. 예를 들어 서로 싸우고 싶어하는 고유한 "Army" 객체를 가진 사용자가 있을 수 있습니다. 각 사용자는 공개 읽기로 자신의 객체를 작성할 수 있고 다른 사용자가 읽을 수 있으므로 서로의 장치에서 렌더링이 가능합니다.

클라이언트에서 객체를 수정할 때 객체의 기본 권한은 Owner ReadOwner Write(으)로 설정됩니다. 코드 런타임에서 객체를 수정할 때 객체의 기본 권한은 No ReadNo Write(으)로 설정됩니다. 객체를 나열할 때 적절한 권한이 있는 객체만 다시 가져옵니다.

코드 런타임에서 사용자 지정 권한이 있는 객체를 저장할 수 있습니다.

Related Pages