Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
| Порівняння попередніх версій Попередня ревізія Наступна ревізія | Попередня ревізія | ||
|
programming:databases:postgresql:new_app_proposal [2021/08/04 14:16] charon [Створення бази даних] |
programming:databases:postgresql:new_app_proposal [2021/08/13 16:18] (поточний) charon |
||
|---|---|---|---|
| Рядок 1: | Рядок 1: | ||
| ====== Приклад створення системи ролей для нового застосунку ====== | ====== Приклад створення системи ролей для нового застосунку ====== | ||
| ===== Опис ===== | ===== Опис ===== | ||
| - | На початку маємо інстанс Постгреса mydb. Для нового проєкту створюємо нову базу даних в цьому інстансі, | + | На початку маємо інстанс Постгреса |
| - | Тільки example_migrator має створювати нові схеми, таблиці, | + | <WRAP center round important 60%> |
| + | Тільки | ||
| + | </ | ||
| ===== Створення користувачів ===== | ===== Створення користувачів ===== | ||
| <code postgresql> | <code postgresql> | ||
| Рядок 11: | Рядок 12: | ||
| ===== Створення бази даних та призначення прав ===== | ===== Створення бази даних та призначення прав ===== | ||
| + | наступні операції виконати під адміном, | ||
| <code postgresql> | <code postgresql> | ||
| GRANT example_migrator TO CURRENT_USER WITH ADMIN option; | GRANT example_migrator TO CURRENT_USER WITH ADMIN option; | ||
| Рядок 19: | Рядок 21: | ||
| REVOKE example_migrator from CURRENT_USER; | REVOKE example_migrator from CURRENT_USER; | ||
| </ | </ | ||
| - | Це створить нову БД exampledb. Користувач example_migrator стане її оунером і тому матиме всі права. Користувачу example_user надається право на підключення до нової БД, а також право модифікувати записи в усіх майбутніх таблицях і підключатися до всіх мабутніх схем цієї БД | + | Це створить нову БД //exampledb//. Користувач |
| + | |||
| + | ===== Додавання нових користувачів пізніше ===== | ||
| + | Після цього через деякий час (вже створені якісь таблиці) може знадобитися додати нового користувача, | ||
| + | <code postgresql> | ||
| + | GRANT example_migrator TO CURRENT_USER WITH ADMIN option; | ||
| + | GRANT CONNECT ON DATABASE exampledb TO dbuser2; | ||
| + | ALTER DEFAULT PRIVILEGES FOR ROLE example_migrator GRANT USAGE ON SCHEMAS TO dbuser2; | ||
| + | ALTER DEFAULT PRIVILEGES FOR ROLE example_migrator GRANT SELECT ON TABLES TO dbuser2; | ||
| + | REVOKE example_migrator from CURRENT_USER; | ||
| + | </ | ||
| + | Далі треба перепідключитися до БД // | ||
| + | <code postgresql> | ||
| + | GRANT USAGE ON SCHEMA exampleschema TO dbuser2; | ||
| + | GRANT SELECT ON ALL TABLES IN SCHEMA exampleschema TO dbuser2; | ||
| + | </ | ||