Как создать представление db2/iseries без разрешений по умолчанию?
Каждый раз, когда я создаю новый вид, мне приходится менять разрешения для всех, и довольно часто приходится делать одно и то же.
Я также спрашиваю, возможно ли изменить некоторые параметры по умолчанию в базе данных, которую я создаю, чтобы права доступа были общедоступными.
Спасибо
2 ответа
Похоже, вы используете именование SQL. Вместо этого используйте System naming, это предоставит публичные права доступа в соответствии с системным значением QCRTAUT. Смотрите статью Биргитты Хаузер.
Именование системы имеет дополнительное преимущество использования списка библиотек задания для разрешения неквалифицированных ссылок на объекты. Не жестко кодируя имена схем, но позволяя системе находить их в соответствии со списком библиотек, позволяя вашему коду работать в различных средах (например, разработка, тестирование, обучение, производство) без изменения кода, просто запустив с другой список библиотек. Поэтому вы можете установить код в производство точно таким же кодом, который был протестирован.
Следующее из документации V6R1:
авторизация
Привилегии, которыми обладает ID авторизации оператора, должны включать как минимум одно из следующего:
Привилегия для создания в схеме. Для получения дополнительной информации см. Права, необходимые для создания в схеме.
Административная власть
Привилегии, которыми обладает ID авторизации оператора, должны включать как минимум одно из следующего:
Следующие системные права доступа: * ИСПОЛЬЗОВАТЬ для команды CL Создать логический файл (CRTLF) * ИЗМЕНИТЬ в словаре данных, если библиотека, в которой создается представление, является схемой SQL со словарем данных. Административные полномочия
Привилегии, которыми обладает ID авторизации оператора, также должны включать хотя бы одно из следующего:
Для каждой таблицы и представления, на которые ссылаются напрямую через полную выборку, или косвенно через представления, на которые ссылается полная выборка: привилегия SELECT для таблицы или представления и системный орган *EXECUTE для библиотеки, содержащей таблицу или представление. Административные полномочия
Просмотр владения: если были указаны имена SQL:
Если существует профиль пользователя с тем же именем, что и у схемы, в которой создается представление, то владельцем этого профиля является владелец.
В противном случае владельцем представления является профиль пользователя или групповой профиль задания, выполняющего оператор.Если были заданы системные имена, владельцем представления является профиль пользователя или групповой профиль задания, выполняющего оператор.
Посмотреть авторитет:
Если используются имена SQL, представления создаются с системными полномочиями *EXCLUDE для *PUBLIC. Если используются системные имена, представления создаются с полномочиями * PUBLIC, как определено параметром создания полномочий (CRTAUT) схемы.
Если владелец представления является членом профиля группы (ключевое слово GRPPRF) и указаны полномочия группы (ключевое слово GRPAUT), этот профиль группы также будет иметь права доступа к представлению.
Владелец всегда получает привилегию SELECT WITH GRANT OPTION для представления и авторизацию для удаления представления.
Владелец также может получить привилегии INSERT, UPDATE и DELETE для представления. Если представление не только для чтения, то в новом представлении будут получены те же привилегии, что и у владельца таблицы или представления, указанного в первом предложении FROM полной выборки. Эти привилегии могут быть предоставлены только в том случае, если они также могут быть предоставлены.