Задать вопрос

Как в EF Core (Npgsql) указать владельца базы данных и ее таблиц?

Если создавать базу из psql, то есть параметр --owner, с помощью которого назначается владелец БД.
createdb --host=%address% --username=%dbuser% --owner=%dbowner% %dbname%


Мне нужно удалить старую базу и создать новую средствами EF Core (Npgsql.EntityFrameworkCore.PostgreSQL)

С помощью такого кода я пересоздаю базу данных:
db1.Database.EnsureDeleted();
db1.Database.EnsureCreated();


Но операция удаления возможна только под привилегированным пользователем.
Соответственно после создания базы, ее владельцем становится тоже суперпользователь от имени которого установлено соединение.

Как можно установить для созданной базы владельцем другого пользователя с ограниченными правами (при этом таблицы тоже должны сменить владельца)?
  • Вопрос задан
  • 48 просмотров
Подписаться 2 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
Zarinov
@Zarinov Автор вопроса
Я нашел вариант, как сменить владельца базы данных, но при этом таблицы все равно остаются под суперпользователем.
db1.Database.EnsureDeleted();
Console.WriteLine("Database.EnsureDeleted");

db1.Database.EnsureCreated();
db1.Database.ExecuteSqlRaw("ALTER DATABASE dbname1 OWNER TO user1;");
Console.WriteLine("Database.EnsureCreated");


Как сменить владельца и для таблиц?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы