- •2. Лабораторная работа №2. Пользователи, транзакции и ограничения в PostgreSql
- •3. Создание таблиц в субд PostgreSql
- •3.1. Создание пользователей и баз данных
- •3.2. Команды для работы с таблицами. Создание, заполнение, модификация
- •3.3. Использование транзакций в PostgreSql
- •3.4. Выгрузка и загрузка базы данных
- •3.5. Создание ограничений
3. Создание таблиц в субд PostgreSql
3.1. Создание пользователей и баз данных
Для создания нового пользователя в PostgreSQL используется команда CREATE USER. Команда CREATE USER имеет всего один обязательный параметр - имя нового пользователя. Ей также можно передать множество других параметров, в том числе пароль, системный идентификатор, группу и права, назначаемые новому пользователю.
Полный синтаксис команды CREATE USER выглядит так:
CREATE USER пользователь
[WITH [SYSID uid]
[PASSWORD ‘пароль’]]
[CREATEDB | NOCREATEDB]
[CREATEUSER | NOCREATEUSER]
[IN GROUP группа [...]]
[ VALID UNTIL ‘срок’]
Имя создаваемого пользователя определяется параметром пользователь. В системе не допускается присутствие двух пользователей с одинаковыми именами.
За ключевым словом WITH следуют секции SYSID и/или PASSWORD.
Все остальные необязательные секции могут следовать в произвольном порядке (ключевое слово WITH для них не обязательно). Ниже перечислены все необязательные ключевые слова.
SYSID uid. Пользователю назначается системный идентификатор uid. Если значение не указано, выбирается некоторое уникальное число.
PASSWORD 'пароль'. Новому пользователю назначается заданный пароль. Если значение не указано, по умолчанию используется пароль NULL.
CREATEDB | NOCREATEDB. Ключевое слово CREATEDB предоставляет новому пользователю право создания баз данных, а также право уничтожения принадлежащих ему баз данных. Ключевое слово NOCREATEDBявно указывает на отсутствие такого права (используется по умолчанию).
CREATEUSER | NOCREATEUSER. Ключевое слово CREATEUSER предоставляет пользователю право создания пользователей, наделяя его тем самым правами суперпользователя. Пользователь с правом создания других пользователей обладает всеми правами во всех базах данных (включая право создания баз данных, даже если было указано ключевое слово NOCREATEDB). Ключевое слово NOCREATEUSER явно указывает на отсутствие права создания новых пользователей.
IN GROUP группа [....]. Новый пользователь включается в группу с заданным именем. Допускается перечисление нескольких групп через запятую. Чтобы создание пользователя прошло успешно, перечисленные группы должны существовать.
VALID UNTIL ‘срок’. Пароль пользователя становится недействительным в указанный момент, который задается в одном из поддерживаемых форматов времени. По истечении срока действия пароль необходимо сменить.
VALID UNTIL 'infinity'. Срок действия пароля не ограничивается.
При отсутствии ключевых слов CREATEDB и CREATEUSER создастся «обычный» пользователь, не обладающий особыми привилегиями. Он не может ни создавать, ни уничтожать базы данных и других пользователей. Обычные пользователи могут подключаться к базам данных PostgreSQL, но при этом они могут выполнять лишь те команды, выполнение которых им было разрешено.
Для создания базы данных необходимо воспользоваться командой CREATE DATABASE.
Синтаксис:
CREATE DATABASE база_данных
[WITH [LOCATION = {‘каталог’ | DEFAULT}]
[TEMPLATE - шаблон | DEFAULT]
[ENCODING - имя_кодировки | номер_кодировки | DEFAULT]]
Параметры:
база_данных. Имя создаваемой базы данных.
каталог. Каталог, в котором хранится база данных. С ключевым словом DEFAULT база сохраняется в каталоге по умолчанию, задаваемом переменной среды PGDATA (пли ключом - D, переданным postmaster).
шаблон. Имя шаблона, на основании которого создается новая база данных. Ключевое слово DEFAULT означает шаблон по умолчанию (обычно template1).
имя_кодировки | номер_кодировки. Расширенная кодировка, используемая базой данных. Задается в виде строкового литерала или в виде целочисленного номера, определяющего тип кодировки. Список типов расширенных кодировок в PostgreSQL приведен в приложении А. Список команд для работы с типом date приведен в приложении Б
DEFAULT. Ключевое слово DEFAULT явно задает кодировку по умолчанию (используемую при отсутствии параметра ENCODING).
Для входа в базу под созданным пользователем необходимо выйти из текущей учетной записи и набрать команду:
psql –U имя база
Здесь имя - имя созданного пользователя, база – имя базы данных, к которой происходит подключение. Если база не создана, подключиться к базе template1, создать новую базу и переподключиться.
