Jaki jest grant
opcja/trik muszę dać do bieżącego użytkownika („USERA”) w celu umożliwienia mu zmienić właściciela obiektu, który przynależy przez innego użytkownika ("userC")?Postgresql: error „musi być właścicielem relacji” przy zmianie obiektu właściciela
Dokładniej, kontakt tabela jest własnością userC i kiedy wykonać następujące zapytanie do zmiany właściciela do UserB, połączony z USERA:
alter table contact owner to userB;
Otrzymuję ten błąd:
ERROR: must be owner of relation contact
Ale USERA posiada wszystkie niezbędne uprawnienia, aby to zrobić normalnie (dalej "tworzyć na schemacie" opcja dotacji powinno wystarczyć):
grant select,insert,update,delete on all tables in schema public to userA;
grant select,usage,update on all sequences in schema public to userA;
grant execute on all functions in schema public to userA;
grant references, trigger on all tables in schema public to userA;
grant create on schema public to userA;
grant usage on schema public to userA;
thks wyjście liniowe
rozkazu:
[email protected]:~# psql -U userA myDatabase
myDataBase=>\dt contact
List of relations
Schema | Name | Type | Owner
-------+---------+----------+---------
public | contact | table | userC
(1 row)
myDataBase=>
myDataBase=>alter table contact owner to userB;
ERROR: must be owner of relation public.contact
myDataBase=>
Ten problem pojawia się, gdy używamy niewłaściwego użytkownika do wykonywania czynności takich jak aktualizacja/usuwanie.Napotykałem ten problem, ponieważ użyłem niewłaściwego użytkownika do zrobienia DML. Kiedy wybrałem odpowiedniego użytkownika, problem został rozwiązany. Również, jeśli przyznasz uprawnienia DML bieżącemu użytkownikowi, problem ten zostanie rozwiązany. – Ankur
Chcemy tylko wspomnieć, że jeśli jakikolwiek użytkownik rozróżnia wielkość liter, należy go podać. Np .: nadaj "UserB" użytkownikowi A ->, w którym to przypadku pierwszy użytkownik rozróżnia wielkość liter, ale drugi nie – guival