Форум программистов, компьютерный форум, киберфорум
PostgreSQL
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 1
Регистрация: 14.11.2012
Сообщений: 27
1

Как можно получить имена владельцев баз?

19.08.2018, 22:05. Просмотров 449. Ответов 4

Добрый день,
может ли кто нибудь проконсультировать по следующему вопросу (ну не хватает знаний пока к сожалению):
1) я подключаюсь к постгрес, как суперпользователь постгрес.
2) В системе порядка 10-15 баз и список существующих баз я научился получать;
3) Как можно получить имена владельцев этих баз?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.08.2018, 22:05
Ответы с готовыми решениями:

Какой API можно получить зарезервированные имена Windows?
Например если посмотреть свойства любого диска в проводнике, там будет написано: Локальный диск,...

Имена доступных баз
Каким запросом можно вывести имена всех баз?

Как получить короткие имена?
Можно как-то по простому получить короткие пути в кодировке OEM866?

Как получить список баз данных на сервере
Доброго времени суток. Как получить список баз данных на сервере?

4
1000 / 787 / 306
Регистрация: 02.09.2012
Сообщений: 2,398
20.08.2018, 23:43 2
SQL
1
SELECT d.datname, a.rolname FROM pg_database AS d JOIN pg_authid AS a ON d.datdba = a.oid
0
0 / 0 / 1
Регистрация: 14.11.2012
Сообщений: 27
22.08.2018, 13:51  [ТС] 3
grgdvo,

"SELECT d.datname, a.rolname FROM pg_database AS d JOIN pg_authid AS a ON d.datdba = a.oid"
Прошу меня извинить, но не могли бы Вы немного более подробно раскрыть данный запрос?

1) Я захожу в систему под суперпользователем постгрес
2) Вижу что в системе есть условно десять баз "mama1", "mama1", ... "mama10". Владельцами которых являются условные десять пользователей "papa21", ..."papa201".
Но какой пользователь является владельцем той или иной базы, я не знаю.
3) И поэтому можно ли раскрыть более подробно прриведенный Вами запрос?

Чем является сивол "d" в части d.datname?
Чем является сивол "a" в части a.rolname?
Чем является сивол "d" в части AS d JOIN?
Чем является сивол "d" в части AS d JOIN?
Чем является сивол "a" в части AS a ON d.datdba = a.oid?

Спасибо
0
1000 / 787 / 306
Регистрация: 02.09.2012
Сообщений: 2,398
22.08.2018, 15:24 4
Цитата Сообщение от maxfox123 Посмотреть сообщение
Чем является сивол "d" в части d.datname?
Символ "d" - это псевдоним таблицы pg_database. Чтобы не писать pg_database.datname, для краткости пишем d.datname.
Можно было бы и просто datname написать, но в таком случае при выполнении запроса может выйти ошибка о неоднозначности имени datname. Это имя может использоваться в других таблицах, из которых выбираем. Чтобы не думать об этой ошибке, сразу используем псевдоним и обезопасим себя от возможной неоднозначности имен.
Цитата Сообщение от maxfox123 Посмотреть сообщение
Чем является сивол "a" в части a.rolname?
Символ "a" - это псевдоним таблицы pg_authid.
Цитата Сообщение от maxfox123 Посмотреть сообщение
Чем является сивол "d" в части AS d JOIN?
Чем является сивол "d" в части AS d JOIN?
Чем является сивол "a" в части AS a ON d.datdba = a.oid?
Правильно читать так
SQL
1
2
3
4
5
6
7
8
SELECT -- выбрать набор записей ...
  ...  -- ...  с такими-то полями ...
FROM -- ... из отношения (таблицы) ...
  pg_database AS d -- pg_database, которую в запросе называем d, ...
JOIN  -- ... связанного(ой) с отношением (таблицей) ...
  pg_authid AS a -- pg_authid, которую в запросе называем a,
ON -- ... следующим условием: ...
d.datdba = a.oid -- значение поле datdba таблицы d (pg_database) должно совпадать со значением поля oid таблицы a (pg_auth)
1
0 / 0 / 1
Регистрация: 14.11.2012
Сообщений: 27
23.08.2018, 11:29  [ТС] 5
grgdvo,
спасибо большое. Так действительно более понятно.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.08.2018, 11:29

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как получить рандомные имена файлов?
Есть имена файлов: game-Black-Star2dx-l2-1-0.dll game-Black-Star1dx-l1-1-0.dll Заношу список...

Как получить имена компьютеров в сети?
Нужно получить имена всех компьютеров подключенных в настоящий момент к сети Microsoft!

Как получить имена компьютеров по их IP адресам?
Всем привет.Получаю IP адреса компов в сети так: Imports System.Net Imports System.Net.Sockets...

Как получить имена компьютеров в сети?
Надоумьте, как получить имена всех компьютеров подключенных в настоящий момент к сети Microsoft?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.