grant命令(sql的grant语句用法)

:暂无数据 2026-09-01 18:10:07 0

grant命令(sql的grant语句用法)

这篇文章给大家聊聊关于grant命令,以及sql的grant语句用法对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

本文目录

sql的grant语句用法

GRANT
名称
GRANT — 赋予一个用户,一个组或所有用户访问权限
GRANT privilege
TO { PUBLIC | GROUP group | username }

输入
privilege
可能的权限有:

SELECT
访问声明的表/视图的所有列/字段.
INSERT
向声明的表中插入所有列字段.
UPDATE
更新声明的所有列/字段.
DELETE
从声明的表中删除所有行.
RULE
在表/视图上定义规则 (参见 CREATE RULE 语句).
ALL
赋予所有权限.
object
赋予权限的对象名.可能的对象是:
table (表)
view (视图)
sequence (序列)
index (索引)
PUBLIC
代表是所有用户的简写.
GROUP group
将要赋予权限的组 group .目前的版本中,组必须是用下面方法显式创建的.
username
将要赋予权限的用户名.PUBLIC 是代表所有用户的简写.
输出
CHANGE
如果成功,返回此信息.
ERROR: ChangeAcl: class "object" not found
如果所声明的对象不可用或不可能对声明的组或用户赋予权限.
描述
GRANT 允许对象的创建者给某用户或某组或所有用户(PUBLIC)某些特定的权限.对象创建后,除了创建者外,除非创建者赋予(GRANT)权限,其他人没有访问对象的权限.
一旦用户有某对象的权限,他就可以使用那个特权.不需要给创建者赋予(GRANT)对象的权限,创建者自动拥有对象的所有权限,包括删除它的权限.
注意
目前,要想在 Postgres 里面只赋予几列权限,你必须创建一个包含那几列的视图(view),然后把权限赋予那几个视图。
使用 psql \z 命令获取关于现存对象权限的更多信息:
Database = lusitania
+------------------+---------------------------------------------+
| Relation | Grant/Revoke Permissions |
+------------------+---------------------------------------------+
| mytable | {"=rw","miriam=arwR","group todos=rw"} |
+------------------+---------------------------------------------+
Legend:
uname=arwR -- privileges granted to a user
group gname=arwR -- privileges granted to a GROUP
=arwR -- privileges granted to PUBLIC
r -- SELECT
w -- UPDATE/DELETE
a -- INSERT
R -- RULE
arwR -- ALL

小技巧: 目前,要创建一个 GROUP (组), 你将不得不手工向表 pg_group 中插入数据,像:
INSERT INTO pg_group VALUES (’todos’);
CREATE USER miriam IN GROUP todos;

参考 REVOKE 语句重新分配访问权限.
用法
给所有用户向表 films 插入记录的权限:
GRANT INSERT ON films TO PUBLIC;

赋予用户 manuel 操作视图 kinds 的所有权限:
GRANT ALL ON kinds TO manuel;

兼容性
SQL92
SQL92 GRANT 语法允许对表中的某单独列/字段设置权限,并且允许设置一权限以赋予别人相同权限.
GRANT privilege
ON object
TO { PUBLIC | username

这些字段与 Postgres 实现是兼容的,除了下面一些例外:
privilege
SQL92 允许声明附加的权限:
SELECT

REFERENCES
允许在一个声明的表的整合约束中使用某些或全部列/字段.
USAGE
允许使用一个域,字符集,集合或事务.如果声明的对象不是表/视图, privilege 只能声明为 USAGE.
object
table
SQL92 允许一个附加的非函数关键字 TABLE.
CHARACTER SET
允许使用声明的字符集.
COLLATION
允许使用声明的集合序列.
TRANSLATION
允许使用声明的字符集转换.
DOMAIN
允许使用声明的域.
WITH GRANT OPTION
允许向别人赋予同样权限.

如何用grant命令来授权指定ip

使用以下授权语句,将授权指定的192.168.1.1 和192.168.1.2 的机器,使用用户名为root,密码为test123的用户访问
grant all privileges on *.* to ’root’@’192.168.1.1’ identified by ’test123’;
grant all privileges on *.* to ’root’@’192.168.1.2’ identified by ’test123’;

第四十八章 SQL命令 GRANT(二)

列权限授予用户或角色对指定表或视图上的指定列列表的指定权限。这允许访问某些表列,而不允许访问同一表的其他列。这提供了比 GRANT OBJECT-PRIVICATION 选项更具体的访问控制,后者定义了整个表或视图的权限。向被授权者授予权限时,应为表授予表级权限或列级权限,但不能同时授予两者。 SELECT 、 INSERT 、 UPDATE 和 REFERENCES 权限可用于授予对单个列中数据的访问权限。

对具有 GRANT OPTION 的表具有 SELECT 、 INSERT 、 UPDATE 或 REFERENCES 对象权限的用户可以向其他用户授予该表的列的相同类型的列权限。

可以指定单个列,也可以指定逗号分隔的列列表。列列表必须用括号括起来。列名可以按任意顺序指定,允许重复。将 COLUMN 特权授予已具有该特权的列不起作用。

以下示例授予两列的UPDATE权限:

可以授予表或视图的列特权。可以向任何类型的被授权者授予列权限,包括用户列表、角色列表、 * 和 _PUBLIC 。但是,不能将星号( * )通配符用于权限、字段名或表名。

如果用户将新记录插入到表中,则只会将数据插入到已授予列权限的那些字段中。所有其他数据列都设置为定义的列默认值,如果没有定义的默认值,则设置为 NULL 。不能向 RowID 和 IDENTITY 列授予列级 INSERT 或 UPDATE 权限。插入时, SQL会自动提供 RowID 和标识列值(如果需要)。

列级权限可以通过 SQL GRANT 和 REVOKE 命令或通过 IRIS System Security授予或撤消。转到管理门户,依次选择System Administration、Security、Users(或System Administration、Security、Roles),选择所需用户或角色的名称,然后选择SQL Tables或SQL Views选项卡。从下拉列表中选择所需的命名空间。然后选择Add Columns按钮。在显示的窗口中,选择一个方案,选择一个表,选择一个或多个列,然后分配权限。

可以使用单个 GRANT 语句指定以下权限组合:

以下示例授予 Deborah 表级 SELECT 和 UPDATE 权限以及列级 INSERT 权限:

以下示例授予 Deborah 列级 SELECT 、 INSERT 和 UPDATE 权限:

对象的所有者自动拥有该对象的所有权限。 GRANT 语句的 TO 子句指定要向其授予访问权限的用户或角色。在使用 TO 选项指定被授权者之后,可以选择指定 WITH GRANT OPTION 关键字子句,以允许被授权者也能够将相同的权限授予其他用户。可以将 WITH GRANT OPTION 关键字子句与对象权限或列权限一起使用。带 CASCADE 的 REVOKE 命令可用于撤消这一系列级联授予的权限。

例如,可以使用以下命令向用户授予对 Employees 表的 Chris %ALTER 、 SELECT 和 INSERT 权限:

为了使 Chris 也能够将这些权限授予其他用户, GRANT 命令包含 WITH GRANT OPTION 子句:

可以使用 %SQLCatalogPriv.SQLUsers() 方法调用来查找 GRANT 语句的结果。

使用 GRANT OPTION 向模式授予权限允许被授权者能够将相同的模式权限授予其他用户。但是,它不允许被授权者授予该架构中指定对象的特权,除非用户已被显式授予该特定对象的特权( GRANT OPTION )。下面的示例显示了这一点:

WITH ADMIN OPTION 子句授予被授权者将其收到的相同权限授予其他人的权利。要授予系统权限,必须已被授予具有 ADMIN 选项的系统权限。

可以授予一个角色,如果这个角色已经通过 ADMIN OPTION 授予给,或者如果拥有 %Admin_Secure:"U" 资源。

授予 WITH ADMIN OPTION 将取代先前没有此选项的相同权限的授予。
因此,如果在没有 WITH ADMIN OPTION 的情况下授予一个用户特权,然后再将相同的特权授予 WITH ADMIN OPTION 用户,那么该用户就拥有 WITH ADMIN OPTION 权限。
但是,没有 WITH ADMIN OPTION 的授予不会取代之前使用该选项授予的相同权限。
要从特权中删除 WITH ADMIN OPTION 权限,必须撤销该特权,然后在不使用此条款的情况下重新授予该特权。

可以使用 $SYSTEM.SQL.Schema.ExportDDL() 方法导出特权。
在此方法中指定表时, IRIS将导出为该表授予的所有表级特权和所有列级特权。

在嵌入式SQL中使用 GRANT 之前,需要以具有适当特权的用户身份登录。
如果不这样做,将导致 SQLCODE -99 错误(特权冲突)。
使用 $SYSTEM.Security.Login() 方法为用户分配适当的权限:

必须具有 %Service_Login:Use 权限才能调用 $SYSTEM.Security 。
登录方法。

SQL特权只能通过 ODBC 、 JDBC 和动态SQL ( %SQL. statement )强制执行。

在系统范围内执行特权取决于 $SYSTEM.SQL.Util.SetOption("SQLSecurity") 方法调用的设置。
要确定当前设置,调用 $SYSTEM.SQL.CurrentSettings() ,它会显示一个 SQL Security ON: setting 。

默认值是1 ( Yes ):用户只能对已被授予权限的表和视图执行操作。
这是该选项的推荐设置。
如果此选项设置为0 ( No ),则更改此设置后启动的任何新进程将禁用SQL Security。
这意味着禁止基于特权的表/视图安全性。
您可以在不指定用户的情况下创建表。
在本例中,管理门户将“ _SYSTEM ”分配为 user ,嵌入式SQL将 “” (空字符串)分配为 user 。
任何用户都可以对表或视图执行操作,即使该用户没有这样做的特权。

下面的示例创建用户、创建角色,然后将角色分配给用户。
如果用户或角色已经存在,则发出 SQLCODE -118 错误。
如果已经完成了特权或角色的分配,则不会发出错误( SQLCODE = 0 )。

下面的示例显示了多个特权的分配。
它创建一个用户和两个角色。
一个 GRANT 语句将这些角色和一组 admin 权限分配给用户。
如果用户或角色已经存在,则发出 SQLCODE -118 错误。
如果已经完成了特权或角色的分配,则不会发出错误( SQLCODE = 0 )。

下面的示例将当前命名空间中所有表上的所有7个基本权限授予所有当前定义的没有 %all 角色的用户:

数据库授权命令GRANT中表示任意远程主机的是,表示本地主机的是

在数据库授权命令GRANT中,表示任意远程主机的是%,表示本地主机的是localhost。

grant命令如何授权用户为系统账号

“进入mysql,创建一个新用户root,密码为root: 格式:grant 权限 on 数据库名.表名 to 用户@登录主机 identified by “用户密码”; grant select,update,insert,delete on . to root@192.168.1.12 identified by “root”; 原先数据表结构 mysql》 use mysql; Database changed mysql》 select host,user,...

MySQL如何授权一个自己的创建的用户比如daitest创建新数据库的权利求命令

慢慢看吧
mysql中可以给你一个用户授予如select,insert,update,delete等其中的一个或者多个权限,主要使用grant命令,用法格式为:
grant 权限 on 数据库对象 to 用户
一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。
grant select on testdb.* to common_user@’%’
grant insert on testdb.* to common_user@’%’
grant update on testdb.* to common_user@’%’
grant delete on testdb.* to common_user@’%’
或者,用一条 mysql 命令来替代:
grant select, insert, update, delete on testdb.* to common_user@’%’
二、grant 数据库开发人员,创建表、索引、视图、存储过程、函数。。。等权限。
grant 创建、修改、删除 mysql 数据表结构权限。
grant create on testdb.* to developer@’192.168.0.%’;
grant alter on testdb.* to developer@’192.168.0.%’;
grant drop on testdb.* to developer@’192.168.0.%’;
grant 操作 mysql 外键权限。
grant references on testdb.* to developer@’192.168.0.%’;
grant 操作 mysql 临时表权限。
grant create temporary tables on testdb.* to developer@’192.168.0.%’;
grant 操作 mysql 索引权限。
grant index on testdb.* to developer@’192.168.0.%’;
grant 操作 mysql 视图、查看视图源代码 权限。
grant create view on testdb.* to developer@’192.168.0.%’;
grant show view on testdb.* to developer@’192.168.0.%’;
grant 操作 mysql 存储过程、函数 权限。
grant create routine on testdb.* to developer@’192.168.0.%’; - now, can show procedure status
grant alter routine on testdb.* to developer@’192.168.0.%’; - now, you can drop a procedure
grant execute on testdb.* to developer@’192.168.0.%’;
三、grant 普通 dba 管理某个 mysql 数据库的权限。
grant all privileges on testdb to dba@’localhost’
其中,关键字 “privileges” 可以省略。
四、grant 高级 dba 管理 mysql 中所有数据库的权限。
grant all on *.* to dba@’localhost’
五、mysql grant 权限,分别可以作用在多个层次上。
1. grant 作用在整个 mysql 服务器上:
grant select on *.* to dba@localhost; - dba 可以查询 mysql 中所有数据库中的表。
grant all on *.* to dba@localhost; - dba 可以管理 mysql 中的所有数据库
2. grant 作用在单个数据库上:
grant select on testdb.* to dba@localhost; - dba 可以查询 testdb 中的表。
3. grant 作用在单个数据表上:
grant select, insert, update, delete on testdb.orders to dba@localhost;
4. grant 作用在表中的列上:
grant select(id, se, rank) on testdb.apache_log to dba@localhost;
5. grant 作用在存储过程、函数上:
grant execute on procedure testdb.pr_add to ’dba’@’localhost’
grant execute on function testdb.fn_add to ’dba’@’localhost’
六、查看 mysql 用户权限
查看当前用户(自己)权限:
show grants;
查看其他 mysql 用户权限:
show grants for dba@localhost;
七、撤销已经赋予给 mysql 用户权限的权限。
revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 即可:
grant all on *.* to dba@localhost;
revoke all on *.* from dba@localhost;
八、mysql grant、revoke 用户权限注意事项
1. grant, revoke 用户权限后,该用户只有重新连接 mysql 数据库,权限才能生效。
2. 如果想让授权的用户,也可以将这些权限 grant 给其他用户,需要选项 “grant option“
grant select on testdb.* to dba@localhost with grant option;
这个特性一般用不到。实际中,数据库权限最好由 dba 来统一管理。
注意:修改完权限以后 一定要刷新服务,或者重启服务

mysql数据库可以登陆,但用grant命令创建用户时提示错误

大概初次安装 root 没设密码吧?你先给 root 设个密码再试试。可用这种方式设密码:
use mysql;
update user set password=password(’123456’) where user=’root’;
flush privileges;
exit
重新用 root 登录,密码是123456
进去后再用 grant 创建新用户试试。

sql的grant与rock命令属于数据库保护中的什么控制

sql的grant与rock命令属于数据库保护中的完整性控制
数据库系统中的数据由DBMS统一管理与控制,为了保证数据库中数据的安全、完整和正确有效,要求对数据库实施保护,使其免受某些因素对其中数据造成的破坏。

关于grant命令和sql的grant语句用法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

grant命令(sql的grant语句用法)

本文编辑:admin

更多文章:


数据库管理系统和数据库系统分别侧重(数据库,数据库管理系统,数据库系统,这三个分别是什么意思并举个实例)

数据库管理系统和数据库系统分别侧重(数据库,数据库管理系统,数据库系统,这三个分别是什么意思并举个实例)

今天给各位分享数据库,数据库管理系统,数据库系统,这三个分别是什么意思并举个实例的知识,其中也会对数据库,数据库管理系统,数据库系统,这三个分别是什么意思并举个实例进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年9月7日 17:00

编程语言出现的先后顺序(最早的编程语言是哪一个)

编程语言出现的先后顺序(最早的编程语言是哪一个)

今天给各位分享最早的编程语言是哪一个的知识,其中也会对最早的编程语言是哪一个进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年9月7日 16:10

小程序源码有什么用(大商创小程序源码好用吗)

小程序源码有什么用(大商创小程序源码好用吗)

“小程序源码有什么用”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看小程序源码有什么用(大商创小程序源码好用吗)!

2026年9月7日 15:40

springmvc的依赖(springMVC的注入方式有哪几种,这与springMVC依赖)

springmvc的依赖(springMVC的注入方式有哪几种,这与springMVC依赖)

大家好,关于springmvc的依赖很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于springMVC的注入方式有哪几种,这与springMVC依赖的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还

2026年9月7日 14:00

it培训评价网(it培训排名机构十大IT培训机构)

it培训评价网(it培训排名机构十大IT培训机构)

这篇文章给大家聊聊关于it培训评价网,以及it培训排名机构十大IT培训机构对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年9月7日 13:00

个人博客页面布局(新手站长怎样做好独立博客初期运营工作)

个人博客页面布局(新手站长怎样做好独立博客初期运营工作)

大家好,如果您还对个人博客页面布局不太了解,没有关系,今天就由本站为大家分享个人博客页面布局的知识,包括新手站长怎样做好独立博客初期运营工作的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年9月7日 12:40

display flex 自动换行(overflow-y:hidden;overflow-x:auto;无效解决方法)

display flex 自动换行(overflow-y:hidden;overflow-x:auto;无效解决方法)

大家好,关于display flex 自动换行很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于overflow-y:hidden;overflow-x:auto;无效解决方法的知识点,相信应该可以解决大家的一些困惑和问题,如

2026年9月7日 11:00

小程序免认证源码(小程序源码都能干嘛)

小程序免认证源码(小程序源码都能干嘛)

本篇文章给大家谈谈小程序免认证源码,以及小程序源码都能干嘛对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年9月7日 10:50

timestamp without time zone(Postgresql中to_date()函数使用问题)

timestamp without time zone(Postgresql中to_date()函数使用问题)

各位老铁们好,相信很多人对timestamp without time zone都不是特别的了解,因此呢,今天就来为大家分享下关于timestamp without time zone以及Postgresql中to_date()函数使用问题

2026年9月7日 09:40

网页制作代码特效大全(谁知道网页打字机特效的代码)

网页制作代码特效大全(谁知道网页打字机特效的代码)

大家好,如果您还对网页制作代码特效大全不太了解,没有关系,今天就由本站为大家分享网页制作代码特效大全的知识,包括谁知道网页打字机特效的代码的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年9月7日 04:20

最近更新

创业加盟网1688(怎样考察加盟店)
2026-09-07 17:50:14 浏览:0
热门文章

yoga pro 14s carbon(yoga14s接口类型)
2026-07-03 17:50:01 浏览:5
domino directory(帮我翻译一下Recipient’s Domino Directory entry does not specify a valid Notes mail file)
2026-08-03 19:20:01 浏览:4
标签列表