Tôi muốn cấp các drop
đặc quyền trên tất cả các bảng và hàm (không chỉ những người thuộc sở hữu của người dùng) trong một lược đồ nhất định của cơ sở dữ liệu cụ thể cho một vai trò cụ thể. Tuy nhiên, GRANT ALL PRIVILEGES
vẫn chưa đủ và tôi đã không tìm ra cách làm mà không biến vai trò thành siêu người dùng - siêu người dùng có quyền đối với các cơ sở dữ liệu khác trên cùng một máy chủ, đó không phải là điều tôi muốn. Tôi sẽ không nhớ các đặc quyền siêu người dùng giới hạn trong một cơ sở dữ liệu cụ thể, nhưng tôi không chắc làm thế nào để làm điều đó.
Mã của tôi:
CREATE USER _administrator PASSWORD 'pwd12345';
CREATE ROLE administrator NOLOGIN ADMIN _administrator;
GRANT ALL PRIVILEGES ON DATABASE "myDB" TO administrator;
GRANT ALL PRIVILEGES ON SCHEMA public TO administrator;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO administrator;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO administrator;
GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public TO administrator;
administrator
là nhóm myDB
quản trị viên cơ sở dữ liệu, _administrator
là vai trò mạnh mẽ nhất mà ứng dụng khách của tôi sẽ có thể đăng nhập với tư cách.
Những gì tôi đã bỏ lỡ hoặc làm sai?