2015-07-12 4 views
9

Есть три роли безопасности по умолчанию в CloudKit:Как работают роли и разрешения безопасности CloudKit?

  • Мир
  • идентифицированные
  • Создатель

И три разрешения:

  • Создать
  • Read
  • Написать

Как эти роли безопасности и разрешения работать?

Вот примеры некоторых из вопросов, которые я бы надеяться получить ответ на объяснение ролей безопасности:

  • Что три роли означают? Первые два кажутся очевидными, но последнее кажется меньше. Например. Создатель обратитесь к создателю таблицы или создателю записи?
  • Куда вы попали под разрешение? Написать?
  • Могут ли роли безопасности применяться к отдельным записям? (Например, я хочу, чтобы пользователь имел доступ только к подмножеству записей в таблице InstantMessages: те, которые они отправляют, и те, которые они получают. Может ли что-то подобное делать через роли безопасности?)
  • Имеются ли права наследования ? (Например, создатель получает все разрешения от создателя, аутентифицированного и мира?)
  • Являются ли разрешения чисто аддитивными? Или я могу создать пользовательскую роль, которая будет удалять привилегии, а не добавлять их? (Например, для создания роли безопасности «Запрещенный пользователь».)
  • Как установить роль для пользователя? Могу ли я установить роль по умолчанию для каждого созданного пользователя? Могу ли я изменить роль пользователя программно?
  • Как создать новые роли безопасности? Могу ли я создавать/обновлять их программно?

ответ

6

1) Как работают эти роли безопасности и разрешения? Вы устанавливаете их на панели управления в среде разработки.

2) Что означают три роли? Первые два кажутся очевидными, но последнее кажется меньше. Например. Создатель ссылается на создателя таблицы или на создателя записи? - Создатель записи (и это означает, что все устройства, которые получают доступ к CloudKit с той же учетной записью iCloud)

3) Где может быть разрешено удаление? Написать? ДА

4) Могут ли роли безопасности применяться к отдельным записям? NO

5) (см.Я хочу, чтобы пользователь имел доступ только к подмножеству записей в таблице InstantMessages: те, которые они отправляют, и те, которые они получают. Можно ли что-то подобное сделать с помощью ролей безопасности?) Что означает «доступ»? Пользователь может читать только то, что ваше приложение позволяет им читать и что у них есть разрешение на чтение. Пользователь может создавать или записывать (и удалять) записи, которые ваше приложение позволяет им создавать или изменять (и удалять), и что у них есть разрешение на создание или запись - им нужны оба.

6) Разрешены ли разрешения? (Например, создает ли создатель все разрешения, предоставленные от создателя, аутентифицированного и мира?) Роли являются подмножествами другого - создатель является подмножеством аутентифицированных. аутентифицированный - это подмножество мира.

7) Имеются ли разрешения ... программно? Разрешения переходят к «подлинному» «широкому классу» «создателя», так что вы не можете устанавливать разрешение по каждому пользователю (за исключением того, что пользователь, создающий запись, является единственным создателем).

Но ключ ко всему этому заключается в том, чтобы помнить, что он требует, чтобы код вашего приложения предоставлял создание/чтение/запись в запись, и конкретный пользователь должен иметь это разрешение. Таким образом, вы можете делать все, что захотите, в коде, чтобы кто-нибудь мог что-либо сделать - при условии, что вы предоставили «Аутентифицированный» право на «запись»

+0

Связаны ли эти роли только с общей базой данных? Как насчет общего или частного? – LamonteCristo

+0

Эти роли применимы к публичной базе данных и тривиально также применяются к частной базе данных. Только одна учетная запись имеет доступ к частной базе данных. Поэтому этот человек является «создателем», и у создателя есть все права. Конец истории. (Общие файлы - я не уверен). –

Смежные вопросы