如何向任意用户授予对所有函数和视图的读取/选择访问权限?
我使用psql --user=postgres -d mydb -f myview.sql创建几个函数和视图,然后运行:
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;
在被授予所有权限之后,我希望myuser现在能够访问postgres用户创建的函数和视图。然而,当我尝试用myuser访问它们时,我得到了一个“关系的权限被拒绝...”错误。为什么会这样呢?
我已经创建了Postgres用户user1,并将所有权限授予了my_db,当我试图从数据库中选择一个表时,我得到了一个权限被拒绝的错误。
创建user1
>>zya$ psql -d postgres
psql (9.6.3)
Type "help" for help.
postgres=# CREATE USER user1 WITH PASSWORD 'password1';
CREATE ROLE
postgres=# GRANT ALL PRIVILEGES ON DATABASE my_db to user1;
GRANT
postgre
我使用的是PostGres 9.5。我在刚创建的表中插入数据时遇到了困难。尽管我将所有权限授予数据库用户,但我还是会得到“拒绝权限”错误。见下文..。
localhost:myapp davea$ psql -Upostgres
Password for user postgres:
psql (9.5.0, server 9.5.1)
Type "help" for help.
postgres=# GRANT ALL ON schema public TO myapp;
GRANT
localhost:myapp davea$ psql -Upostgres
Passw
这是我的init.sql文件:
DROP DATABASE IF EXISTS my_data;
CREATE DATABASE my_data;
DROP USER IF EXISTS u;
CREATE USER u WITH PASSWORD 'secret';
GRANT ALL ON ALL TABLES IN SCHEMA public TO u;
GRANT ALL ON ALL SEQUENCES IN SCHEMA public TO u;
GRANT ALL ON ALL FUNCTIONS IN SCHEMA public TO u;
\c my_d
第二天,如果我使用auth_type = hba,我无法通过pgbouncer克服连接错误。
postgres=# create user monitoring with password 'monitoring';
postgres=# create database monitoring owner monitoring;
postgres=# \du+ monitoring
List of roles
Role name | Attributes | Member of | Description
------------+---
如何使自己成为postgresql的超级用户?
我一直试图创建一个数据库,并不断得到以下错误:
createdb:数据库创建失败:错误:拒绝创建数据库的权限
我猜这是因为我不是超级用户,但我不知道出了什么问题。我所做的是:
> sudo su postgres
> postgres@precise64:/xxx/xxx/projectfile$createuser -P
> Enter name of role to add: vagrantUser
> Enter password:
> Enter it again:
> Shall the
试图导入csv文件,如下所示:
psql -h 127.0.0.1 -d jira_statistics -U admin -p 5432 -c "COPY bugs FROM '/home/centos/bugs.csv' delimiter '|' csv;"
Password for user admin:
ERROR: could not open file "/home/centos/bugs.csv" for reading: No such file or directory
HINT: COPY FROM i
所以我正在制作这个应用程序,我使用Postgres,我已经创建了一个数据库、一个用户和一个密码,并将数据库上的所有权限授予了我创建的用户。
问题是,当我使用\c <database_name>在psql中切换数据库时,我可以很好地使用它上的查询。
但是,当我在终端上使用psql运行postgres://user_name:password@localhost:5432/databasename并尝试使用select * from the <table_name>时,它会给我以下消息
拒绝关系<table_name>的权限
你能告诉我该怎么做吗?我以前
我试图在用Perl编写的Linux上创建一个PostgreSQL触发器,它应该基于外部库执行代码。包含触发器的SQL脚本如下所示:
CREATE OR REPLACE FUNCTION notify_mytable_update() RETURNS trigger AS $$
use lib "full_path_to_lib_dir";
use MyModule;
return;
$$ LANGUAGE plperlu
SECURITY DEFINER
SET search_path = myschema, public, pg_temp;
DROP TRIG