怎么把一个表空间的权限给一个角色 或者用户呢

怎么把一个表空间的权限给一个角色 或者用户呢,第1张

可以由DBA将CREATE ANY TABLE,SELECT ANY TABLE等系统权限授给第一个用户

或者由第二个用户将自己拥有的所有对象的所有权限授给第一个用户。

打开SQL-Server管理工具安全性登陆名右键(新建登陆名)

输入相应的信息(这里要去掉强制实施密码策略,强制密码过期,用户在下次登录时必须修改密码的选择)用户映射选择我们要设置权限的数据库通过选择数据库角色成员身份来设置新建用户的权限一般对整个库做权限的时候都是需要所有权限勾选db_owner就可以了(确定)

这样就可以用我们新建的这个用户名来访问我们的数据库服务器了,而且这个用户名只拥有我们所勾选的数据库的所有权限。

PostgreSQL 12 已经发布,该版本在各方面都得到了加强,包括显著地提升查询性能,特别是对大数据集,总的空间利用率方面。这个版本为应用程序开发人员提供了更多的功能,比如对 SQL/JSON 路径表达式的支持,优化公共表达式(WITH查询)的执行,以及对生成列的支持等。

PostgreSQL 除了持续对 PostgreSQL 系统的可扩展性、稳健性进行开发外,还更多地在本地化、授权控制以及更加容易的管理进行增强。这个版本也引入了 可插拨的表存取接口,来允许开发者在表的创建和使用时使用不同的存取方式。具体如下:

全面的性能提升

PostgreSQL 12版本在性能和易维护性方面有了显著的增强,尤其是对索引和分区子系统。

PostgreSQL 12 对标准索引类型B树索引进行了优化,以使其可以可以更好地处理索引更新频率较高类型的负载的的总体性能,使用最常使用的TPC-C 性能测试,PostgreSQL 12 平均可以提升约 40% 的空间利用率和查询性能。

对分区表的查询也得到了较大改进,特别是对那些有数千个分区的表,而结果只需从几个有限的分区提取数据的查询。PostgreSQL 12 对通过 INSERT 和COPY指令将数据加入分区表的 *** 作,也有加强,包括现在可以在不阻塞查询的情况下增加新的分区。

另外,PostgreSQL 12 对索引的优化也提升了总体的性能,包括生成 GiST、GIN 或 SP-GiST 索引的 WAL 日志的负载显著减少,在 GiST 类型索引上创 建INCLUDE选项的包含索引,SP-GiST 索引现在支持<->距离 *** 作的 K-NN(即相邻最近)查询,以及CREATE STATISTICS指令现在支持最常用值 MCV 的统计来帮助那些字段值非均匀分布的查询生成更优化的查询计划。

通过使用 LLVM,从 PostgreSQL 11 版引入的 JIT 即时编译,在 PostgreSQL 12 中缺省已是启用状态,JIT 即时编译对带有 WHERE 条件、对象列表、 聚合以及一些内部 *** 作都会提供性能上的帮助。当然,用户在安装或是编译时需要包含 LLVM 模块。

对 SQL 标准一致性和功能的增强

PostgreSQL 一直以来以其对 SQL 标准符合性而著称,这也是其名称由 POSTGRES 改为 PostgreSQL 的一个小原因。PostgreSQL 12 又增加了几个新特性 来持续实现对 SQL 标准的符合性的强化。

PostgreSQL 12 加入了对 JSON 文档进行查询时使用 JSON 路径表达式的功能,这也是 SQL/JSON 中定义的规范。对使用 JSONB 格式保存的文档,这些查 询可以利用已有的索引机制来高效地提取数据。

公共表达式,也称之为 WITH 查询,在 PostgreSQL 12 中可以实现非物化 *** 作处理,这对很多现在已有的查询有很大帮助。目前在这个版本中,WITH 查询的前提条件是非递归查询并且仅可被外层查询引用一次。

PostgreSQL 12 也引入了“生成列”功能,这也是 SQL 标准中的要求,这些字段值是通过同一表中其它列计算而来的。在这一版本中,PostgreSQL 支持“保存生成列值”的功能,即将这些计算出来的数据存储在磁盘上。

本地化

PostgreSQL 12 扩充了对 ICU 排序规则的支持,允许用户自行定义非标准的排序方式,比如允许大小写不敏感或是按口音不敏感的比较规则。

授权控制

PostgreSQL 通过再次扩展了一些的安全方面的功能来强化了它本来就很稳健的权限控制。这个版本中通过 GSSAPI 接口支持客户端和服务端的双向加密, 如果在编译时加入 OpenLDAP 模块,PostgreSQL 也支持搜索 LDAP 服务器的功能。

另外,PostgreSQL 12 现在支持多约束的授权方式。如在使用scram-sha-256的授权方式,PostgreSQL 服务器现在可以强制一个客户端在提供用户名、使用clientcert=verify-full选项,再必须提供有效的 SSL 证书的方式来强化安全授权。

系统管理

PostgreSQL 12 的REINDEX CONCURRENTLY指令可以在不影响新的索引写入的前提下让用户执行重那建索引 *** 作,这有助于用户实现不停机对 较大索引的重建。

还有,PostgreSQL 12 通过使用pg_checksums指令对停机的 PostgreSQL 来开启或关闭页校验功能,该功能有助于检查已写入磁盘的数据一致性, 而以前版本中该 *** 作仅允许在 initdb的阶段来执行。

这是postgresql数据库的trust认证设计,即任意os用户无需密码就可以获得postgresql数据库管理员权限,不检查os用户名,用户组。这被很多程序员认为是PG数据库的一个安全漏洞。

可以通过配置pg_hbaconf和pg_identconf文件禁止os用户以trust认证方式登录。

PG物化视图(Materialized View)是PostgreSQL中一种特殊的视图,是对基本表数据的聚合和简化,并将结果缓存到物理表中。物化视图可以提高查询的执行效率,并且可以实现对基本表数据的定期刷新,确保数据的正确性。其主要优缺点如下:

优点:

1 提高查询性能。物化视图的使用可以避免大量 joins、group by 和聚集函数,可以加快查询速度。也可以在物化视图中进行预计算,简化表的复杂查询。

2 降低数据冗余。物化视图将计算结果保存在物理表中,相比动态视图或查询,无需每次执行查询时计算全部数据,可以有效减少数据冗余。

3 优化查询计划。物化视图可以作为附加的优化器提高查询计划的效率,特别是当查询中有多个相同的联结、聚合函数或固有的查询逻辑时。

4 常用于大数据量的系统。当查询结果集是大数据量的时候,直接读取物化视图,而非直接查询源数据表,这对于大数据量系统的性能改善是非常显著的。

缺点:

1 物化视图增加了存储成本。使用物化视图会占用更多的磁盘空间,增加存储和维护成本。

2 物化视图必须定期刷新。使用物化视图需要定期刷新保证数据的正确性,如果刷新的时间不当,可能导致数据不一致。

3 物化视图可能不适合高并发的应用场景。当物化视图的更新频率高,而且许多查询同时访问物化视图的时候,可能会产生锁问题。

4 物化视图的维护有一定的复杂性。如果物化视图对基本表进行了除了简单查询之外的 DML *** 作,就需要对物化视图进行重新计算或刷新,或禁止对基本表进行 DML *** 作,这需要一定的管理和维护成本。

总之,PG物化视图具有明显的性能优势和简化查询的能力,但是也需要权衡其缺点,特别是存储和维护成本。

仔细分析,无非几个原因:

1、log目录的权限问题,比如log文件指定的目录postgres用户无权写入,因此没有产生任何log文件。检查了/var/lib/postgresql/11/main的目录,没有发现问题。

2、配置文件的权限问题,检查了/etc/postgresql/11/main目录,也没有发现任何问题,postgres用户是有权限读取配置文件的。

3、配置文件有错误导致无法正常启动postgresql。排除了上面的两个原因,这个应该是最大的原因了。但是,错误在哪里呢?没有给出提示啊!

 尝试了service postgresql start, pg_ctrcluster, pg_ctl均无法给出任何提示,后来才想明白,这几个都是对postmaster的脚本封装啊,也许这些封装忽略了什么重要的信息!应该直接运行postmaster才能得到直接的出错提示的!果然,执行/usr/lib/postgresql/11/bin/下的postmaster给出了提示,执行语句:

 看到这里立刻明白了:我将postgresqlconf中的lc_messages改为了 en_USUTF-8,可是没有产生en_USUTF-8的locale文件啊!于是修改/etc/localesgen文件添加en_USUTF-8,执行localesgen,再次启动postgresql,成功!

PostgreSQL包含以下字段:

1 数据类型:整数、浮点数、字符串、日期/时间、布尔值、大对象(BLOB)、数组、复合类型、自定义类型等。

2 索引:B树、哈希、GiST、SP-GiST、GIN等。

3 函数:内置函数、自定义函数、聚合函数、触发器函数等。

4 视图:普通视图、索引视图、触发器视图等。

5 权限:用户权限、表

1、使用CREATE DATABASE

该命令将创建一个数据库PostgreSQL的shell提示符,但你应该有适当的权限来创建数据库。默认情况下,创建新的数据库将通过克隆标准系统数据库template1。

语法:

CREATE DATABASE语句的基本语法如下:

CREATE DATABASE dbname;

其中dbname是要创建的数据库的名称。

例子:

下面是一个简单的例子,这将创建testdb 在PostgreSQL模式:

postgres=# CREATE DATABASE testdb;

postgres-#

2、使用createdb的命令

PostgreSQL命令行可执行createdb是是SQL命令CREATE DATABASE一个包装器。此命令和SQL命令CREATE DATABASE之间唯一的区别是,前者可以直接在命令行中运行,它允许的注释被添加到数据库中,全部在一个命令。

语法:

createdb语法如下所示:

createdb [option] [dbname [description]]

参数

下表列出了参数及它们的描述。

参数名称            描述

dbname    The name of a database to create  

description    Specifies a comment to be associated with the newly created database  

options    command-line arguments which createdb accepts  

选项

下表列出了命令行参数CREATEDB接收:

选项                            描述

-D tablespace         Specifies the default tablespace for the database  

-e                     Echo the commands that createdb generates and sends to the server  

-E encoding    Specifies the character encoding scheme to be used in this database  

-l locale    Specifies the locale to be used in this database  

-T template    Specifies the template database from which to build this database  

--help    Show help about dropdb command line arguments, and exit  

-h host    Specifies the host name of the machine on which the server is running  

-p port    Specifies the TCP port or the local Unix domain socket file extension on which the server is listening for connections  

-U username    User name to connect as  

-w    Never issue a password prompt  

-W    Force createdb to prompt for a password before connecting to a database  

打开命令提示符,然后去是PostgreSQL安装所在的目录。进入到bin目录,执行下面的命令创建一个数据库。

createdb -h localhost -p 5432 -U postgress testdb

password

上面的命令会提示Postgres的默认的PostgreSQL管理用户的密码,以便提供密码和继续创建新的数据库。

一旦创建数据库时可以使用上述方法,可以检查它在列表中的数据库使用l即反斜线el命令如下:

postgres-# l

                            List of databases

  Name    |  Owner   | Encoding | Collate | Ctype |   Access privileges  

-----------+----------+----------+---------+-------+-----------------------

postgres  | postgres | UTF8     | C       | C     |

template0 | postgres | UTF8     | C       | C     | =c/postgres          +

          |          |          |         |       | postgres=CTc/postgres

template1 | postgres | UTF8     | C       | C     | =c/postgres          +

          |          |          |         |       | postgres=CTc/postgres

testdb    | postgres | UTF8     | C       | C     |

(4 rows)

postgres-#

以上就是关于怎么把一个表空间的权限给一个角色 或者用户呢全部的内容,包括:怎么把一个表空间的权限给一个角色 或者用户呢、pg12数据库有没有pgAgent、Python中os.system登录postgres数据库时为什么不需要密码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9756876.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存