精华内容
下载资源
问答
  • postgres数据库怎么转成postgis数据库

    万次阅读 2018-08-14 20:33:38
    postgres数据库安装完成后,如果想执行有空间查询的方法,可以执行下面命令将数据库转成postgis数据库 create extension postgis 执行完成后,数据库中会自动多出一张表 spatial_ref_sys ...

    微信搜索:“二十同学” 公众号,欢迎关注一条不一样的成长之路

    postgres数据库安装完成后,如果想执行有空间查询的方法,可以执行下面命令将数据库转成postgis数据库

    create extension postgis

    执行完成后,数据库中会自动多出一张表  spatial_ref_sys

    展开全文
  • postgres 数据库

    千次阅读 2014-11-01 16:29:22
    表空间、数据库、角色、模式及表之间的关系 表空间用于定义数据库对象在物理存储设备上的位置,不特定于某个单独的数据库数据库数据库对象的物理集合,而schema则是数据库内部用于组织管理数据库对象的逻辑集合...

    转自http://openwares.net/database/postgresql_tablespace_database_user_schema_table-2.html

    表空间、数据库、角色、模式及表之间的关系

    表空间用于定义数据库对象在物理存储设备上的位置,不特定于某个单独的数据库。

    数据库是数据库对象的物理集合,而schema则是数据库内部用于组织管理数据库对象的逻辑集合,
    schema名字空间之下则是各种应用程序会接触到的对象,比如表,索引,数据类型,函数,操作符等。

    角色(用户)则是数据库服务器(集群)全局范围内的权限控制系统,用于各种集群范围内所有的对象权限管理。
    因此角色不特定于某个单独的数据库,但角色如果需要登录数据库管理系统则必须连接到一个数据库上。

    角色可以拥有各种数据库对象。

    数据库管理模式

    对于一个应用程序分很多相对独立的模块,每个模块有相对独立的数据结构,可以采用每个模块一个数据库用户及与其名字相同的schema来组织数据库,并且整个的物理数据库放在一个单独的表空间中。

    使用这种数据库管理模式,可以撤销掉对public schema的访问许可,甚至把public schema直接移除,这样每个用户就真正的限定在了他们自己的schema里。

    大致的数据库创建流程如下:

    创建数据库拥有者角色

    用超级用户postgres登录postgres数据库,然后创建角色foo并使其有CREATEDB CREATEROLE LOGIN权限

    1
    2
    $ psql -U postgres -h localhost
    postgres=# CREATEROLE foo CREATEDB CREATEROLE LOGINPASSWORD'password';

    创建表空间并将其所有权赋予新创建的用户

    创建表空间ts_foo并将其所有权赋予角色foo

    1
    postgres=# CREATETABLESPACE ts_foo OWNER foo LOCATION'/mnt/raid3805';

    创建数据库

    使用新创建的用户foo登录postgres数据库,然后在ts_foo表空间上创建同名数据库foo(在哪个用户下创建默认属于哪个用户,所以可以不加OWNER foo

    1
    2
    $ psql -U foo -h localhost -d postgres
    postgres=> CREATEDATABASEfoo TABLESPACE ts_foo;

    创建其他用户

    用新创建的角色foo登录foo数据库,然后创建其他用户bar,并为bar赋予数据库foo上的CREATE权限

    1
    2
    3
    $ psql -U foo -h localhost
    foo=> CREATEROLE bar LOGINPASSWORD'password';
    foo=> GRANTCREATEONDATABASEfooTObar;

    创建用户的schema

    使用角色bar登录数据库foo,然后创建角色bar拥有的schema bar

    1
    2
    $ psql -U bar -h localhost -d foo
    foo=> CREATESCHEMAbar;

    bar用户创建其同名schema下的表对象

    1
    foo=> CREATETABLEfoobar (idINTEGER);

    注意:

    shell命令psql连接到哪个数据库呢?情况是这样的:

    如果只使用psql不提供任何参数,则psql试图连接到与当前发出命令的操作系统用户名同名的数据库,如果提供命令行参数-U指定要使用的登录角色名,那么psql试图去连接与登录名同名的数据库,如果提供了-d 命令行参数明确的指定要连接的数据库,则psql试图连接到这个指定的数据库。

    select rolname  from pg_roles;--查看角色
    select usename from pg_user;--查看用户
    select oid,datname,* from pg_database; --查看数据库id,模板,
    SELECT  * FROM pg_namespace;--查看SCHEME
    
    DROP DATABASE "SGDOCSTR";--删除数据库
    DROP role "SGDOCSTR";--删除角色
    
    CREATE ROLE "SGDOCSTR" SUPERUSER CREATEDB CREATEROLE LOGIN ENCRYPTED PASSWORD 'SGDOCSTR';--创建role并赋予创建数据库创建角色登录加密密码权限(如需超级管理员)
    CREATE DATABASE "SGDOCSTR" OWNER "SGDOCSTR" ;--创建数据库属于sgdocstr角色
    
    C:\Program Files\PostgreSQL\9.3\bin>psql -U postgres SGDOCSTR < d:\sgdocstr.sql --使用postgresql的psql命令导入(如果需要操作系统用户最好用系统用户<pre name="code" class="sql">postgres 登录操作)
    C:\Program Files\PostgreSQL\9.3\bin>pg_dump -h localhost -U postgres  SGDOCSTR > d:\sgdocstr_20150115.sql --导出命令
    
    //系统自带的数据库的sql命令
    -- Database: postgres
    -- DROP DATABASE postgres;
    CREATE DATABASE postgres
      WITH OWNER = postgres
           ENCODING = 'UTF8'
           TABLESPACE = pg_default
           LC_COLLATE = 'Japanese_Japan.932'
           LC_CTYPE = 'Japanese_Japan.932'
           CONNECTION LIMIT = -1;
    GRANT CONNECT, TEMPORARY ON DATABASE postgres TO public;
    GRANT ALL ON DATABASE postgres TO postgres;
    GRANT ALL ON DATABASE postgres TO "SGDOCSTR";
    
    COMMENT ON DATABASE postgres
      IS 'default administrative connection database';
    //取消 权限<div>REVOKE ALL ON  DATABASE postgres FROM "SGDOCSTR";</div>
     安装postgresql
    yum install postgresql postgresql-server
    mysql占用端口3306 pgsql是5432
    2
    导入整个数据库
    psql -U postgres(用户名)  数据库名(缺省时同用户名) < /data/dum.sql
    3
    导出整个数据库
    pg_dump -h localhost -U postgres(用户名) 数据库名(缺省时同用户名)   >/data/dum.sql
    4
    导出某个表
    pg_dump -h localhost -U postgres(用户名) 数据库名(缺省时同用户名)  -t table(表名) >/data/dum.sql
    5
    压缩方法
    一般用dump导出数据会比较大,推荐使用xz压缩
    压缩方法  xz dum.sql 会生成 dum.sql.xz 的文件
    6
    xz压缩数据倒数数据库方法
    xzcat /data/dum.sql.xz | psql -h localhost -U postgres(用户名) 数据库名(缺省时同用户名)
    

    
    -- Role: zqtest
    

    -- DROP ROLE "zqtest";CREATE ROLE "zqtest" LOGIN ENCRYPTED PASSWORD 'zqtest';  SUPERUSER INHERIT CREATEDB CREATEROLE REPLICATION;-- Database: "zqtest"-- DROP DATABASE "zqtest";CREATE DATABASE "zqtest"   WITH OWNER = "zqtest"       ENCODING = 'UTF8'       TABLESPACE = pg_default       --LC_COLLATE = 'Japanese_Japan.932'      -- LC_CTYPE = 'Japanese_Japan.932'     --  CONNECTION LIMIT = -1;

    导出PostgreSQL数据库中的数据:角色(就是用户的概念) ,文件名,数据库名

    $ pg_dump -U newdatabase -f mydatabase.sql  mydatabase

    导入数据时首先创建数据库再用psql导入:数据库名,角色,文件名

    $ createdb newdatabase$ psql -d newdatabase -U postgres -f mydatabase.sql

    C:\Program Files\PostgreSQL\9.3\bin>psql -d newdatabase -U newdatabase -f d:\mydatabase.sql

    文章来源:http://my.oschina.net/Kenyon/blog/97227先谈一下postgresql中涉及用户密码的几张表:

    select username,passwd from pg_shadow;
    select rolname,rolpassword from pg_authid;
    select usename,passwd from pg_user;
    select rolname,rolpassword from pg_roles

    前面两张表存有加密后的密码字符串,后面两张表存的密码都是***,我们感兴趣的前面两张表,通过简单的测试我们可以发现,同样的用户,使用同样的密码得到加密后的字符串是一样的。 

    一般都知道pg_hba.conf里面有配置了MD5方式来访问加密,所以用户表里存的密码数据也该是md5加密后的数据,但到底是怎么组合加密的就不得而知了。 

    近来读到这块源码时发现postgresql的加密方式是md5(user+passwd)的方式来保存的。 
    比如用户是test,密码是123456,那么这个pg_shadow里面的passwd必然是 
    47ec2dd791e31e2ef2076caf64ed9b3d 
    可以用select md5('test123456')来验证。 

    知道了这一点,我们就可以调整源码,将加密方式做点改善可以增强一定程度的安全性。 

    C:\Program Files\PostgreSQL\9.3\data

    postgresql.conf 里面添加常量 ,如果你的表或者试图里面需要用到系统的变量 。

    # Add settings for extensions here
    my_app.passwd = SGDOCSTR

    pg_hba.conf文件添加acl权限访问 下面的  ip为 允许任何ip 和掩码

    host    all             all             0.0.0.0/0               md5 


    展开全文
  • Docker - postgres 数据库

    千次阅读 2019-07-13 20:23:50
    文章目录Docker - postgres 数据库1、构建 postgres 镜像2、运行 postgres 镜像3、postgres 镜像的基础知识3、连接到 postgres 数据库 Docker - postgres 数据库 1、构建 postgres 镜像 拉取镜像 docker pull ...

    Docker - postgres 数据库


    1、构建 postgres 镜像

    在这里插入图片描述

    拉取镜像

    docker pull postgres
    

    在这里插入图片描述

    2、运行 postgres 镜像

    docker run --name postgres -p 5432:5432 -e POSTGRES_PASSWORD=root -d postgres
    

    在这里插入图片描述

    3、postgres 镜像的基础知识

    用户名:默认为 postgres

    # 自定义用户名
    -e POSTGRES_USER=你想要的用户名
    

    密码:需要设置

    # 自定义密码
    -e POSTGRES_PASSWORD=你想要的密码
    

    其它高级参数介绍

    POSTGRES_DB
    This optional environment variable can be used to define a different name for the default database that is created when the image is first started. If it is not specified, then the value of POSTGRES_USER will be used.

    POSTGRES_INITDB_ARGS
    This optional environment variable can be used to send arguments to postgres initdb. The value is a space separated string of arguments as postgres initdb would expect them. This is useful for adding functionality like data page checksums: -e POSTGRES_INITDB_ARGS="–data-checksums".

    POSTGRES_INITDB_WALDIR
    This optional environment variable can be used to define another location for the Postgres transaction log. By default the transaction log is stored in a subdirectory of the main Postgres data folder (PGDATA). Sometimes it can be desireable to store the transaction log in a different directory which may be backed by storage with different performance or reliability characteristics.

    Note: on PostgreSQL 9.x, this variable is POSTGRES_INITDB_XLOGDIR (reflecting the changed name of the --xlogdir flag to --waldir in PostgreSQL 10+).

    PGDATA
    This optional variable can be used to define another location - like a subdirectory - for the database files. The default is /var/lib/postgresql/data, but if the data volume you’re using is a filesystem mountpoint (like with GCE persistent disks), Postgres initdb recommends a subdirectory (for example /var/lib/postgresql/data/pgdata ) be created to contain the data.

    This is an environment variable that is not Docker specific. Because the variable is used by the postgres server binary (see the PostgreSQL docs), the entrypoint script takes it into account.

    3、连接到 postgres 数据库

    通过IDEA 的数据库连接工具

    在这里插入图片描述

    打开连接设置面板,填写帐号,密码

    在这里插入图片描述

    测试连接
    在这里插入图片描述

    连接成功

    在这里插入图片描述

    展开全文
  • BootcampX:Postgres数据库
  • postgres数据库的卸载

    千次阅读 2018-02-07 11:51:27
    一:卸载旧版本 yum remove postgresql* ...二:卸载postgres数据库 1:查询出postgres数据库 rpm -qa |grep postgres 2:卸载postgres数据库 rpm -e 查询出来的postgres版本号
    一:卸载旧版本
    yum remove postgresql*

    二:卸载postgres数据库
    1:查询出postgres数据库
    rpm -qa |grep postgres
    2:卸载postgres数据库
    rpm -e 查询出来的postgres版本号


    展开全文
  • postgres数据库启动

    千次阅读 2018-10-17 10:36:47
    今天需要启动原本被关了的postgres数据库服务,找到了这个博主的文章,很赞,很快就解决了 https://blog.csdn.net/adrainhuang/article/details/76400976 操作就是: 1、登录postgres数据库服务所在的服务器,...
  • 针对Postgres服务器端常用操作命令汇总 由于本人经常操作Postgres数据库养成笔记习惯 所以整理了一下针对数据库操作的各种命令
  • postgres8.3以后,字段数据之间的默认转换取消了。如果需要进行数据变换的话,在postgres数据库中,我们可以用"::"来进行字段数据的类型转换。
  • 之前一直用的是mysql数据库,现在公司要求使用postgres,但是做分页查询的时候,postgres数据库会报错如下: mysql使用的是limit x,y。而postgres使用方式是limit x offset y,语法不一样就会报这个错误。 这时候...
  • avram:用于读取,写入和迁移Postgres数据库的Crystal数据库包装
  • postgres数据库odbc数据源

    热门讨论 2011-09-14 17:30:40
    postgres数据库odbc数据源 用于odbc连接postgres数据库
  • Metasploit 中连接postgres 数据库

    千次阅读 2017-09-07 10:43:45
    kali linux 2017.1 中 Metasploit 连接 postgres 数据库重启 postgres 数据库
  • postgres数据库中文手册,基本语言和编程规范
  • docker 下安装postgres数据库

    千次阅读 2019-03-24 19:04:10
    docker 下安装postgres数据库 搜索postgres数据库 docker search postgres 查看到排名第一的是一个官方的镜像,有6000多个star 下载 docker pull postgres 查看,下载成功之后可以查看到postgres镜像 ...
  • docker 下安装postgres数据库 搜索postgres数据库 docker search postgres 1 查看到排名第一的是一个官方的镜像,有6000多个star 下载 docker pull postgres 1 查看,下载成功之后可以查看到postgres镜像 ...
  • postgres数据库使用全流程 首先需要明确以下几个基本概念的关系:服务器、用户、数据库、数据表 首先需要新建服务器,里面包含选用的用户名等等,该用户名就是之后建的数据库的管理者,如果采用默认的postgres数据库...
  • 为了方便学习postgres数据库特性,本片文章中的postgres搭建在docker中,至于如何在docker中安装postgres,可以先打开https://registry.hub.docker.com/_/postgres,其中有具体的安装步骤。 我的安装命令是: ...
  • postgres数据库备份

    2018-07-03 17:00:04
    postgres数据库备份: pg_dump [OPTION]... [DBNAME] /usr/pgsql-9.4/bin/pgdump -Fc -h 127.0.0.1 -Upostgres 数据库名 > /var/pgsqlback/RulePlatform.sql.`/bin/date +'%Y%b%d%H%M'` #pg_dump 是备份数据库...
  • postgres数据库java配置

    2020-10-27 15:07:54
    第一次用postgres数据库,如何连接 YML server: port: 8081 spring: http: multipart: enabled: true maxFileSize: 10Mb maxRequestSize: 10Mb mvc: hiddenmethod: filter: enabled: true application: ...
  • nestjs-database-example 设置后端api与postgres数据库通信的示例。
  • 新建postgres数据库 一:图形界面方式 登录控制面板,如下: 数据库名称kj01db 定义 -1表示连接不限制 select oid,* from pg_database; 此时,在D:\PostgreSQL\9.3\data\base下的文件夹如下: 二:...
  • fs-java-postgres-react 使用Java和ReactJs的Postgres数据库的Fullstack Webapp
  • 除了使用面向对象的编程方法来设置功能,使用茉莉花进行单元测试以及使用jQuery来实现UI之外,利用Ticketmaster的API添加其他事件,添加Express服务器,该项目的这一部分还着重于设置一个Postgres数据库。...
  • Python连接基于docker运行的Postgres数据库在docker中生成Postgres数据库服务构建镜像,运行服务Python关键点 在docker中生成Postgres数据库服务 https://github.com/docker-library/postgres 参考上述链接,运行...
  • postgres数据库的使用操作】 1.登录数据库: ​ psql -U postgres 2.切换至用户postgres: ​ su - postgres 3.修改密码: ​ ALTER USER postgres with encrypted password ‘root’; ​ 此处设置用户...
  • 一个小 (~100 line) shell脚本用来管理Postgres数据库
  • Postgres数据库显示时间与服务器不同 做时间转换时发现的问题。 postgres数据库时间与服务器时间不在一个时区导致 解决办法:修改postgres配置文件与服务器一致 修改 postgresql配置文件 postgresql.conf 修改信息...
  • 项目查询不到postgres数据库中的表 ALTER USER 用户名 SET search_path to adempiere,public(表模式名称); 删除数据库之前终止与数据库的连接的进程id的函数。 SELECT pg_terminate_backend(pg_stat_activity.pid...
  • 核心提示:Postgres数据库忘记密码,三个步骤解决Postgres数据库忘记密码,三个步骤解决一、修改data目录下的 pg_hba conf 文件将以下这行host all all 127 0 0 1 32 md5改为如下 Postgres数据库忘记密码,三个步骤...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,213
精华内容 2,885
关键字:

postgres数据库