Tùy chọn/lừa grant
Tôi cần cung cấp cho người dùng hiện tại ("userA") để cho phép anh ta thay đổi chủ sở hữu của đối tượng thuộc về bởi một người dùng khác ("userC")?Postgresql: lỗi "phải là chủ sở hữu của quan hệ" khi thay đổi đối tượng chủ sở hữu
Chính xác hơn, các xúc bảng thuộc sở hữu của userC và khi tôi thực hiện các truy vấn sau đây cho việc thay đổi chủ sở hữu để các userB, kết nối với các userA:
alter table contact owner to userB;
Tôi gặp lỗi này:
ERROR: must be owner of relation contact
Nhưng userA có tất cả các quyền cần thiết để làm điều đó thường (các "tạo ra trên giản đồ" tùy chọn cấp nên là đủ):
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
dòng lệnh đầu ra:
[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=>
vấn đề này xảy ra khi chúng tôi đang sử dụng sai người dùng để thực hiện hành động như cập nhật/xóa.Tôi đã phải đối mặt với vấn đề này coz tôi đã sử dụng sai người dùng để làm DMLs.when tôi đã chọn đúng người dùng, vấn đề đã được giải quyết.Ngoài ra nếu bạn cấp đặc quyền DML cho người dùng hiện tại, vấn đề này sẽ được giải quyết. – Ankur
Chỉ muốn đề cập rằng nếu bất kỳ người dùng nào phân biệt chữ hoa chữ thường, nó sẽ được trích dẫn. Ví dụ: cấp "UserB" cho userA -> trong trường hợp đó người dùng đầu tiên phân biệt chữ hoa chữ thường – guival