Користувальницькькі налаштування

Налаштування сайту


programming:databases:postgresql:new_app_proposal

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

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