PostgreSQL用户权限设置方法(Windows下首次打开PostgreSQL所需口令是什么)

postgresql怎么给一个用户赋予权限 windoes下postgreSQL 第一次打开需要的口令是什么

本文目录:

Pg权限分为两部分,一部分是“系统权限”或者数据库用户的属性,可以授予role或user(两者区别在于login权限);一部分为数据库对象上的操作权限。对超级用户不做权限检查,其它走acl。对于数据库对象,开始只有所有者和超级用户可以做任何操作,其它走acl。在pg里,对acl模型做了简化,组和角色都是role,用户和角色的区别是角色没有login权限。

可以用下面的命令创建和删除角色,
CREATE ROLE name;
DROP ROLE name;
为了方便,也可以在 shell 命令上直接调用程序 createuser 和 dropuser,这些工具对相应命令提供了封装:
createuser name
dropuser name

数据库对象上的权限有:SELECT,INSERT, UPDATE,DELETE,RULE, REFERENCES,TRIGGER,CREATE,TEMPORARY,EXECUTE,和 USAGE等,具体见下面定义

typedefuint32AclMode; /a bitmask of privilege bits /

define ACL_INSERT (1<<0) /forrelations /defineACL_SELECT (1<<1)defineACL_UPDATE (1<<2)defineACL_DELETE (1<<3)defineACL_TRUNCATE (1<<4)defineACL_REFERENCES (1<<5)defineACL_TRIGGER (1<<6)defineACL_EXECUTE (1<<7) /for functions /defineACL_USAGE (1<<8) /* for languages, namespaces, FDWs, and
  • servers */
defineACL_CREATE (1<<9) /for namespaces and databases /defineACL_CREATE_TEMP (1<<10) /for databases /defineACL_CONNECT (1<<11) /for databases /defineN_ACL_RIGHTS 12 /1plus the last 1<<x /defineACL_NO_RIGHTS 0

/Currently, SELECT ... FOR UPDATE/FOR SHARE requires UPDATE privileges /

defineACL_SELECT_FOR_UPDATE ACL_UPDATE

我们可以用特殊的名字 PUBLIC 把对象的权限赋予系统中的所有角色。 在权限声明的位置上写 ALL,表示把适用于该对象的所有权限都赋予目标角色。
beigang=# grantall on schema csm_ca to public;
GRANT
beigang=# revoke all on schema csm_ca frompublic;
REVOKE
beigang=#

每种对象的all权限定义如下:
/
Bitmasks defining "allrights" for each supported object type
*/

defineACL_ALL_RIGHTS_COLUMN (ACL_INSERT|ACL_SELECT|ACL_UPDATE|ACL_REFERENCES)defineACL_ALL_RIGHTS_RELATION

(ACL_INSERT|ACL_SELECT|ACL_UPDATE|ACL_DELETE|ACL_TRUNCATE|ACL_REFERENCES|ACL_TRIGGER)

defineACL_ALL_RIGHTS_SEQUENCE (ACL_USAGE|ACL_SELECT|ACL_UPDATE)defineACL_ALL_RIGHTS_DATABASE (ACL_CREATE|ACL_CREATE_TEMP|ACL_CONNECT)define ACL_ALL_RIGHTS_FDW (ACL_USAGE)defineACL_ALL_RIGHTS_FOREIGN_SERVER (ACL_USAGE)defineACL_ALL_RIGHTS_FUNCTION (ACL_EXECUTE)defineACL_ALL_RIGHTS_LANGUAGE (ACL_USAGE)defineACL_ALL_RIGHTS_LARGEOBJECT (ACL_SELECT|ACL_UPDATE)defineACL_ALL_RIGHTS_NAMESPACE (ACL_USAGE|ACL_CREATE)defineACL_ALL_RIGHTS_TABLESPACE (ACL_CREATE)

windoes下postgreSQL 第一次打开需要的口令是什么

这是因为postgres默认不是用内置的超级管理员用户"postgres"登陆的,你设置的密码是超级管理员"postgres"的密码,你可以用"psql--help"(此命令是双短线)命令查看数据库登陆的默认用户名,我的是"admin"用户,这个默认用户是可以修改的,我知道的修改方式是增加环境变量"PGUSER",内容就是"postgres",(注:没有双引号),然后直接输入psql就能以默认postgres用户登陆了.

当然,你也可以直接用psql -h postgres服务器ip -U postgres,指定用postgres用户登陆,本机就是psql -h127.0.0.1 -U postgres,然后会有口令让你输入postgres用户的密码.

  1. 先使用帮助命令,psql --help

  2. 确定执行后的输出效果

  3. 此时尝试直接使用psql命令并输入超级管理员的密码会提示默认用户认证失败
  4. 修改环境变量,添加PGUSER,值为postgre并确定应用
  5. 继续使用帮助命令查看默认用户,psql --help,如果没有更改,可能是环境便令设置错误,或者是环境变量没有生效,耐心等待或者重启电脑都可以使环境变量生效

  6. 如果使用帮助命令查看默认用户是你需要使用的用户,直接使用psql命令并输入对应的密码,此时就能登陆了

  7. 接下来操作你想操作的吧,

可以不安装postgresql,只安装psql吗

PostgreSQL是现在比较流行的数据库之一,这个起源于伯克利(BSD)的数据库研究计划目前已经衍生成一项国际开发项目,并且有非常广泛的用户。据我了解国内四大国产数据库,其中三个都是基于PostgreSQL开发的。并且,因为许可证的灵活,任何人都可以以任何目的免费使用,修改,和分发PostgreSQL,不管是私用,商用,还是学术研究使用。本文只是简单介绍一下postgresql的安装和简单的使用,语法方面涉及的比较少,以方便新手上路为目的。
1.系统环境和安装方法 ;
PostgreSQL的安装方法比较灵活,可以用源码包安装,也可以用您使用的发行版所带的软件包来安装,还可以采用在线安装……
1.1 系统环境:Ubuntu Linux 7.04 ;Fedora;Slackware;

1.2 安装;
Ubuntu下安装软件其实很简单,用新立得软件包管理器搜索psql便能查到postgresql-client-8.2(同时可以搜到8.1版本,哪一个都可以),选中-应用即可。或者在终端下输入
xiaop@localhost$ sudo apt-get install postgresql-8.2
Slackware下安装:请到 linuxpackages.net 上查找您所用系统的对应版本,用pkginstall 来安装,或您安装slap-get工具,在线自动安装;要用到root权限,可以通用sudo。关于su和sudo的参考;《Linux 系统中的超级权限的控制》安装postgresql的软件包,可用下面的办法 ;
xiaop@localhost# pkginstall post*.tgz

xiaop@localhost# slapt-get --install postgresql-8.2.4
在Fedora中,您可以用软件包在线安装工具来安装注:这样就安装好了PostgreSQL8.2了,该安装将自动创建一个缺省的数据库集群(pgsqldb.org中的译法)“main”,且生成一个数据库超级用户postgres。
2. 启动PostgreSQL 数据库服务器;

2.1 在流行Linux发行版的启动方法;
在Ubuntu系统中,服务器启动脚本放在 /etc/init.d目录中,您可以用下面的方法来启动,对于Fedora和Gentoo 也是类似的;
xiaop@localhost~# /etc/init.d/postgresql-8.2 start 注:启动;
xiaop@localhost~# /etc/init.d/postgresql-8.2 restart 注:重启;
xiaop@localhost~# /etc/init.d/postgresql-8.2 stop 注:停止;
xiaop@localhost~# /etc/init.d/postgresql-8.2 status 注:查看状态;
在Slackware中,PostgreSQL的启动脚本放在 /etc/rc.d目录中,如果您用从linuxpackages.net上下载的软件包或在线安装的软件包;
xiaop@localhost~# /etc/rc.d/rc.postgres start
如果您用源码包编译安装,启动PostgreSQL,请查看PostgreSQL官方文档;
2.2 关于 PostgreSQL启动和存储目录;
启动PostgreSQL服务器时,一般是以postgres 用户来启动的,自编译安装的除外;对于数据库的存储一般是放在/var/lib中的相关目录,比如/var/lib/pgsql或 /var/lib/postgresql/8.2/main/目录等;不同的发行版可能不太一样,不过还是大同小异,您可以通过修改数据存储位置把数据库存在其它地方;
3.创建用户

添加用户命令格式。
createuser 是 SQL 命令 CREATE USER的封装。
命令:createuser [-a] [-A] [-d] [-D] [-e] [-P] [-h 主机名] [-p port] 用户名
参数说明:
[-a]:允许创建其他用户,相当于创建一个超级用户;
[-A]:不允许此用户创建其他用户;
[-d]:允许此用户创建数据库;
[-D]:不允许此用户创建数据库;
[-e]:将执行过程显示到Shell上;
[-P]:创建用户时,同时设置密码;
[-h 主机名]:为某个主机上的Postgres创建用户;
[-p port]:与-h参数一同使用,指定主机的端口。
3.1添加用户;

3.1.1不带参数的创建用户;
xiaop@localhost~$ createuser testuser
Shall the new user be allowed to create databases? (y/n) n --------是否可以创建数据库:否
Shall the new user be allowed to create more new users? (y/n) n---------是否可以创建新用户:否
CREATE USER
注:不带参数创建用户时,Postgres会询问此用户的权限,上面的例子创建了一个普通用户;
3.1.2 为指定的主机和端口上创建用户 ;
xiaop@localhost~$ createuser -h 172.28.18.51 -p 5000 -D -A -e testuser
CREATE USER joe NOCREATEDB NOCREATEUSER;
CREATE USER

注:这个命令为主机172.28.18.51的5000端口创建用户testuser, 此用户不可以创建数据库和其他用户。
3.1.3创建超级用户;
xiaop@localhost~$ createuser -P -d -a -e testuser
Enter password for new user: testuser
Enter it again: testuser
CREATE USER joe PASSWORD 'testuser' CREATEDB CREATEUSER;
CREATE USER
注:这个命令在本地创建一个超级用户(-a),可以创建数据库(-d), 同时要求设置密码。
3.2 删除用户:
命令:dropuser [-i] [-h] [-p] [-e] 用户名 参数说明:
[ -i]:删除用户前,要求确认;
[-h 主机名]:删除某个主机上的Postgres用户;
[-p port]:与-h参数一同使用,指定主机的端口;
[-e]:将执行过程显示到Shell上。
3.2.1 删除本地的Postgres用户;
xiaop@localhost~$ dropuser testuser
DROP USER

3.2.2 删除远程Postgres服务器上的用户;
xiaop@localhost~$ dropuser -p 5000 -h 172.28.18.51 -i -e testuser
User "testuser" and any owned databases will be permanently deleted.
Are you sure? (y/n) y
DROP USER "testuser"
DROP USER

注:此命令删除主机172.28.18.51(-h)的5000端口(-p)的用户testuser,并且需要确认(-i);
4. 创建和删除数据库;

4.1创建数据库
看看您能否访问数据库服务器的第一个例子就是试着创建一个数据库;
要创建一个新的数据库,在我们这个例子里叫 mydb,您可以使用下面的命令:
xiaop@localhost~$ createdb mydb
它应该生成下面这样的响应:
CREATE DATABASE
如果这样,那么这一步就成功了,如果您看到类似下面这样的信息
createdb: command not found
那么就是PostgreSQL没有安装好,要么是就根本没装上;
您还可以用其它名字创建数据库。 PostgreSQL 允许您在一个节点上创建任意数量的数据库。 数据库名必须是以字母开头并且小于 63 个字符长。一个方便的做法是创建和您当前用户名同名的数据库。 许多工具假设该数据库名为缺省数据库名,所以这样可以节省您的敲键。要创建这样的数据库,只需要键入 :
xiaop@localhost~$ createdb

linux 下怎么看postgresql安装到哪个目录了

OS:suselinux11(64bit)
PostgreSQL:PostgreSQL9.1(64bit)
1、建用户及目录
linux:/home # groupadd postgres
linux:/home # useradd postgres -g postgres
linux:/home # mkdir /home/postgres
linux:/home # chown postgres:postgres /home/postgres
linux:/home # passwd postgres
2、用root运行安装(不能以postgres运行安装)
linux:/opt # mkdir /opt/PostgreSQL
linux:/opt # chown postgres:postgres /opt/PostgreSQL
linux:/opt/PostgreSQL # chmod +x postgresql-9.1.1-1-linux-x64.bin
linux:/opt/PostgreSQL # ./postgresql-9.1.1-1-linux-x64.bin
----------------------------------------------------------------------------
Welcome to the PostgreSQL Setup Wizard.
----------------------------------------------------------------------------
Please specify the directory where PostgreSQL will be installed.
Installation Directory [/opt/PostgreSQL/9.1]:
----------------------------------------------------------------------------
Please select a directory under which to store your data.
Data Directory [/opt/PostgreSQL/9.1/data]:
----------------------------------------------------------------------------
Please provide a password for the database superuser (postgres). A locked Unix
user account (postgres) will be created if not present.
Password :
Retype password :
----------------------------------------------------------------------------
Please select the port number the server should listen on.
Port [5432]:
----------------------------------------------------------------------------
Advanced Options
Select the locale to be used by the new database cluster.
Locale
[1] [Default locale]
[2] C
[3] POSIX
...
[441] zu_ZA
[442] zu_ZA.utf8
Please choose an option [1] :
----------------------------------------------------------------------------
Setup is now ready to begin installing PostgreSQL on your computer.
Do you want to continue? [Y/n]: y
----------------------------------------------------------------------------
Please wait while Setup installs PostgreSQL on your computer.
Installing
0% __50% __100%

##################################

----------------------------------------------------------------------------
Setup has finished installing PostgreSQL on your computer.
3、相关配置
(1)环境变量
postgres@campost:~> vi .profile(new file)
export PGSQL_HOME=/opt/PostgreSQL/9.1
export PATH=$PGSQL_HOME/bin:$PATH

export PGDATAS=$PGSQL_HOME/datas

export PGDATA=$PGSQL_HOME/data
export PGDATABASE=postgres
export PGUSER=postgres

export PGPORT=1234

export PGLOCALEDIR=$PGSQL_HOME/share/locale
export MANPATH=$MANPATH:$PGSQL_HOME/share/man
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PGSQL_HOME/lib
postgres@campost:~> . .profile
配置如上环境表里之后,可以使用psql连接数据库:
postgres@campost:/opt/PostgreSQL/9.1/data> psql
Password:
psql.bin (9.1.1)
Type "help" for help.
postgres=# help
You are using psql, the command-line interface to PostgreSQL.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
postgres=#
(2)网络配置
加网络信任关系:
----详细信息请参考PostgreSQL document,20.1. pg_hba.conf 文件
vi /opt/PostgreSQL/9.1/data/pg_hba.conf
添加一行:host all all trust
重启数据库:
postgres@campost:~> pg_ctl restart
waiting for server to shut down.... done
server stopped
server starting
此时可以用PgAdmin远程登录postgres用户了,此时只有一个库postgres。

大家都在看
本文经用户投稿或网站收集转载,如有侵权请联系本站。