我试着运行简单的sql命令:
select * from site_adzone;
Run Code Online (Sandbox Code Playgroud)
我收到了这个错误
ERROR: permission denied for relation site_adzone
Run Code Online (Sandbox Code Playgroud)
这可能是什么问题?
我也尝试选择其他表并得到同样的问题.我也试过这样做:
GRANT ALL PRIVILEGES ON DATABASE jerry to tom;
Run Code Online (Sandbox Code Playgroud)
但我从控制台得到了这个回应
WARNING: no privileges were granted for "jerry"
Run Code Online (Sandbox Code Playgroud)
你知道什么是错的吗?
我知道这个命令:
GRANT ALL PRIVILEGES
ON database.*
TO 'user'@'yourremotehost'
IDENTIFIED BY 'newpassword';
Run Code Online (Sandbox Code Playgroud)
但是它只允许我授予一个特定的IP地址来访问这个远程MySQL数据库.如果我需要它以便任何远程主机可以访问此MySQL数据库怎么办?我怎么做?基本上我将这个数据库公开,所以每个人都可以访问它.
我想为用户提供数据库的所有权限,而不是将其作为管理员.我想这样做的原因是,目前DEV和PROD是同一集群上的不同DB,因此我不希望用户能够更改生产对象,但它必须能够更改DEV上的对象.
我试过了:
grant ALL on database MY_DB to group MY_GROUP;
Run Code Online (Sandbox Code Playgroud)
但它似乎没有给予任何许可.
然后我尝试了:
grant all privileges on schema MY_SCHEMA to group MY_GROUP;
Run Code Online (Sandbox Code Playgroud)
它似乎允许我创建对象,但不允许查询属于其他用户的该架构上的\ delete对象
我可以继续在MY_SCHEMA上向用户授予USAGE权限,但是它会抱怨没有权限在桌子上......
所以我想我的问题是:是否有任何简单的方法可以在数据库上为用户提供所有权限?
我正在研究PostgreSQL 8.1.23.
如果我SHOW GRANTS
在我的mysql数据库中,我得到
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'
IDENTIFIED BY PASSWORD 'some_characters'
WITH GRANT OPTION
Run Code Online (Sandbox Code Playgroud)
如果我没有弄错,root@localhost
意味着用户root
只能从中访问服务器localhost
.如何告诉MySQL授予root
从其他所有计算机(在同一网络中)访问此mysql服务器的权限?
我正在尝试第一次创建一个Postgres数据库,所以这可能是一个愚蠢的问题.我为必须从我的php脚本访问数据库的db角色分配了基本的只读权限,我有一个好奇心:如果我执行
GRANT some_or_all_privileges ON ALL TABLES IN SCHEMA schema TO role;
Run Code Online (Sandbox Code Playgroud)
是否还需要执行
GRANT USAGE ON SCHEMA schema TO role;
Run Code Online (Sandbox Code Playgroud)
?
来自文档:
用法:对于模式,允许访问指定模式中包含的对象(假设还满足对象自己的权限要求).从本质上讲,这允许被授权者在模式中"查找"对象.
我认为如果我可以选择或操作模式中包含的任何数据,我可以访问模式本身的任何对象.我错了吗?如果没有,GRANT USAGE ON SCHEMA
用于什么?文档的含义与"假设对象的特权要求也得到满足"完全相同"?
我需要查看Oracle DB上的所有授权.
我使用TOAD功能比较模式,但它没有显示临时授权等等所以我的问题是:
如何列出Oracle DB上的所有授权?
我是DBMS管理员的新手,当我注意到这一点时,我今晚正在建立一个新的数据库(使用MySQL).在第一次授予用户权限后,会创建另一个看起来像的授权
GRANT USAGE on *.* TO user IDENTIFIED BY PASSWORD password
Run Code Online (Sandbox Code Playgroud)
文档说这个USAGE
特权意味着"没有特权",所以我推断这是分层次授予工作的,也许用户必须拥有所有数据库的某种特权,所以这可以作为一个全部捕获?
我也不明白为什么IDENTIFIED BY
当我创建的授权没有一个条款时,这一行中有一个子句(主要是因为我不明白该IDENTIFIED BY
子句的用途).
编辑:对不起,原来没有说明,赠款是
GRANT ALL PRIVILEGES ON database.* TO admin_user
GRANT SELECT, INSERT, UPDATE, DELETE ON database.* TO user
Run Code Online (Sandbox Code Playgroud) 如何在postgres中查询授予对象的所有GRANTS?
例如,我有表"mytable":
GRANT SELECT, INSERT ON mytable TO user1
GRANT UPDATE ON mytable TO user2
Run Code Online (Sandbox Code Playgroud)
我需要一些能给我的东西:
user1: SELECT, INSERT
user2: UPDATE
Run Code Online (Sandbox Code Playgroud) 我正在尝试将我的mysql数据库从Amazon EC2复制到RDS:
我成功地使用以下方法mysqldump
将我的数据库添加到我的根文件夹中:
root@ip-xx-xx-xx-xx:~# mysqldump my_database -u my_username -p > my_database.sql
Run Code Online (Sandbox Code Playgroud)
然后我尝试将此.sql文件传输到我的新RDS数据库:
root@ip-xx-xx-xx-xx:~# mysql my_database -u my_username -p -h
my_new_database.xxxxxxxxx.us-east-1.rds.amazonaws.com < my_database.sql
Run Code Online (Sandbox Code Playgroud)
不幸的是,我收到以下错误消息:
You do not have the SUPER privilege and binary logging is enabled
(you *might* want to use the less safe log_bin_trust_function_creators variable)
Run Code Online (Sandbox Code Playgroud)
我尝试过GRANT SUPER..
多种方式,但是当我尝试这样做时,我也遇到了错误.打字mysql > FLUSH privileges;
也不起作用.
我是一个mysql初学者,很抱歉这么简单的问题.思考?
使用PostgreSQL 9.0,我有一个名为"staff"的组角色,并希望在特定模式的表上授予此角色所有(或某些)特权.以下工作均不适用
GRANT ALL ON SCHEMA foo TO staff;
GRANT ALL ON DATABASE mydb TO staff;
Run Code Online (Sandbox Code Playgroud)
除非我在该特定表上授予所有表,否则 "staff"的成员仍然无法对模式"foo"中的各个表或(在第二个命令的情况下)对数据库中的任何表进行SELECT或UPDATE .
我能做些什么让我和我的用户的生活更轻松?
更新:借助serverfault.com上的类似问题计算出来.
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA foo TO staff;
Run Code Online (Sandbox Code Playgroud) grant ×10
postgresql ×5
mysql ×4
privileges ×4
sql ×3
database ×2
amazon-ec2 ×1
amazon-rds ×1
connection ×1
ddl ×1
oracle ×1
roles ×1
schema ×1