Mar*_*own 2 postgresql permissions role
我正在将应用程序从 SQL Server 移植到 PostgreSQL。其中大部分很简单,因为应用程序只真正执行简单的选择、插入和更新。但是我需要创建一个用户来访问数据库。SQL Sever 代码像这样创建它的用户:
USE [master] CREATE LOGIN [ExampleUserName] WITH PASSWORD = 'ExamplePassword', CHECK_EXPIRATION=OFF, CHECK_POLICY=ON;
USE [ExampleDB];
CREATE USER [ExampleUserName] FOR LOGIN [ExampleUserName];
ALTER ROLE [db_datawriter] ADD MEMBER [ExampleUserName];
ALTER ROLE [db_datareader] ADD MEMBER [ExampleUserName];
Run Code Online (Sandbox Code Playgroud)
什么是 PostgreSQL 中的等价物?
PostgreSQL 中没有这样的内置角色。但是,您可以设置一个:
CREATE ROLE db_datawriter;
Run Code Online (Sandbox Code Playgroud)
在此之后,您必须为其分配写权限(通常是INSERT
、UPDATE
、DELETE
、 可能TRUNCATE
)。要了解如何对所有当前和未来的表执行此操作,请阅读我的旧答案。
通常,写访问也涉及读,因此添加db_datawriter
为成员是有意义的db_datareader
(设置类似,但SELECT
只有):
GRANT db_datareader TO db_datawriter;
Run Code Online (Sandbox Code Playgroud)
然后,您可以根据需要将这两个授予不同的登录用户(或其他角色):
CREATE USER example_user IN ROLE db_datareader;
Run Code Online (Sandbox Code Playgroud)
请注意CREATE USER
,与CREATE ROLE
.
归档时间: |
|
查看次数: |
795 次 |
最近记录: |