• PistgreSQL9.6手册(基础摘录)


    学习目的:基础使用。

    能够开发RoR就行。

     git:

    https://github.com/postgres-cn/pgdoc-cn 



    1.2. 架构基础

    PostgreSQL使用一种客户端/服务器的模型。

    一次PostgreSQL会话由下列相关的进程(程序)组成:

    • 一个服务器进程process: 管理数据库文件,接受来自客户端应用与数据库的连接,并代表客户端在数据库上操作。
    • 需要操作数据库的用户的客户端(前端)应用:客户端本身是多样的, 可以是网页服务器, 或者图形界面的应用等等。。。,大部分是用户开发的。
    PostgreSQL服务器可以处理来自客户端的多个并发请求。

    因此,它为每个连接启动("forks")一个新的进程。

    从这个时候开始,客户端和新服务器进程就不再经过最初的 postgres进程的干涉进行通讯。 因此,主服务器进程总是在运行并等待着客户端联接, 而客户端和相关联的服务器进程则是起起停停

    1.3. 创建一个数据库

    在此之前需要先有一个用户账号,参阅21章。 

    $ createdb mydb

     dropda mydb是删除数据库。

    1.4. 访问数据库

    通过psql(交互终端程序)来访问数据库。可以通过它执行SQL命令

    也可以通过图形化的前端工具,如pgAdim或支持的办公套件。

    $ psql name 

    在psql界面会看到欢迎信息,postgres=#

    如果是=#,则代表是超级用户。但⚠️是我使用create -P name后仍然是这个? 

    而且用其他名字创建后无法进入psql 

    $ createuser -d myapp
    $ psql myapp
    psql: FATAL:  database "myapp" does not exist

    可能是之前没有创建过相关的myapp数据库: createdb myapp 


     21.1数据库角色

    CREATE ROLE name; 

    DROP ROLE name; 

    不过一般使用createuser, dropuser来快速建立,又叫SQL命令的包装器。 

    createuser -d name #-d是允许用户创建一个新databases,(点击见creatuser详解)

    dropuser name       #删除该用户

    psql -U name #指定以哪个角色来连接到数据库服务器。(可以省略-U)

    21.2. 角色属性

    数据库角色可以有一些属性,它们定义角色的权限并且与客户端认证系统交互。

    password: 

    只有当客户端认证方法要求用户在连接数据库时提供一个口令时,一个口令才有意义。passwordmd5认证方法使用口令。数据库口令与操作系统命令独立。在角色创建时指定一个口令:CREATE ROLE name PASSWORD 'string'

    可以在psql中使用password [username]来输入新的口令 

    21.3. 角色成员关系

    用于方便的管理用户权限,权限可以被授予一整组或从整组收回。 

    21.4. 删除角色

    由于角色可以拥有数据库对象并且能持有访问其他对象的特权,删除一个角色 常常并非一次DROP ROLE就能解决。任何被该用户所拥有 的对象必须首先被删除或者转移给其他拥有者,并且任何已被授予给该角色的 权限必须被收回。


    psql --  PostgreSQL的交互式终端

    http://www.postgres.cn/docs/9.6/app-psql.html

    描述: 

    psql是一个PostgreSQL的基于终端的前端。它让你能交互式地键入查询,把它们发送给PostgreSQL,并且查看查询结果。或者,输入可以来自于一个文件或者命令行参数。此外,psql还提供一些元命令和多种类似 shell 的特性来为编写脚本和自动化多种任务提供便利。

    遇到的options:

    du:  列出数据库角色,如果创建了一个role,可以通过这个命令查看。

                                        List of roles
      Role name  |                         Attributes                         | Member of
    -------------+------------------------------------------------------------+-----------
     chenXXXXX | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
     postgres    | Create DB                                                  | {}

    password [username]  


  • 相关阅读:
    macOS 上配置 Lua
    Oracle.ManagedDataAccess.dll
    offer
    Costura.Fody
    日志系统
    实战框架ABP
    什么是算法?
    HTTP状态码->HTTP Status Code
    How to untar a TAR file using Apache Commons
    python实践3:cursor() — 数据库连接操作
  • 原文地址:https://www.cnblogs.com/chentianwei/p/9197403.html
Copyright © 2020-2023  润新知