暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

达梦数据库模式对象

原创 谈笑人生 2022-06-16
3823

一、模式概念
二、模式架构图
三、模式优点
四、模式权限
五、模式可植性

模式是数据库中一个概念,可以将其理解为一个独立空间,不同的模式下可以拥有相同的名称的表,视图,表,丞数等对象而不会发生冲突。模式概念主要方便管理,只要有权限,各个
模式的对象可以互相调用

schema和database 的区别:
和数据库不同,模式并不是被严格地隔离:一个用户可以访问他们所连接的数据库中的所有模式内的对象,只要他们有足够的权限。

一个数据库模式下拥有如下对象信息
(1)表;
(2)视图;
(3)索引;
(4)触发器;
(5)存储过程/函数;
(6)序列;
(7)全文索引;
(8)包;
(9)同义词;
(10)类;
(11)外部链接。


模式逻辑架构图



模式优点
模式使我们可以简化许多用户使用一个数据库而彼此之前不涉及的情况。DM的模式的一些普遍优势如下:
1.在DM架构中,关键优势在于,如果数据库属于不同的架构,则它可以具有相同的表名。
2.架构可以将数据库对象分类为逻辑组,以使其更具可控性。
3.该架构允许用户使用一个数据库来替代多个数据库。
4.为了避免与其它对象的名称冲突,我们可以将第三方架构放入不同的架构中。
5.名称相似的对象只要放在不同的架构中就不会冲突。

模式的权限

创建模式
创建用户的时候会自动创建一个和用户名同名的模式,如果新建模式需要将改模式关联到某个特定的用户
SQL指令
create schema "模式名" authorization "用户名"


删除模式
SQL指令
drop schema "模式名" restrict;


权限管理
权限分类
系统权限
操作数据库对象本身的权限
常用的系统权限:create,alter,drop等操作

对象权限
操作数据库对象相关数据的权限
常用的对象权限:insert,delete,update,select,all

角色权限
将一组系统权限和对象权限进行组合的整体权限为角色
角色可以解决多个用户具备多个相同权限需要进行频繁授权的问题

权限查询
查询用户或角色具备的对象权限
select * from dba_tab_privs where grantee="用户名或角色名"

查询用户或角色具备的系统权限
select * from dba_sys_privs where grantee="用户名或角色名"


查询用户或角色具备的角色权限
select * from dba_role_privs where grantee="用户名或角色名"

授权和撤销权限
新用户默认具备VTI和PUBLIC角色权限
授予和撤销系统权限
grant "系统权限" to "用户" --授权
revoke "系统权限" from "用户" --收权

授予和撤销对象权限
grant "权限" on SCHEMA.OBJECT to "用户" --授权
revoke "权限" on SCHEMA.OBJECT from "用户" --收权


授予和撤销角色权限
创建角色以及授权给角色&将角色权限授权给用户
create role "角色名";
grant "权限" to "角色";
grant "角色" to "用户";

删除角色
drop role "角色名"

系统自带的角色讲解
VTI角色
具有查询动态视图

public角色

角色名权限
PUBLICINSERT TABLE
PUBLICUPDATE TABLE
PUBLICDELETE TABLE
PUBLICSELECT TABLE
PUBLICREFERENCES TABLE
PUBLICGRANT TABLE
PUBLICINSERT VIEW
PUBLICUPDATE VIEW
PUBLICDELETE VIEW
PUBLICSELECT VIEW
PUBLICGRANT VIEW
PUBLICEXECUTE PROCEDURE
PUBLICGRANT PROCEDURE
PUBLICSELECT SEQUENCE
PUBLICGRANT SEQUENCE
PUBLICEXECUTE PACKAGE
PUBLICGRANT PACKAGE
PUBLICSELECT ANY DICTIONARY
PUBLICSELECT MATERIALIZED VIEW
PUBLICGRANT DOMAIN
PUBLICUSAGE DOMAIN
PUBLICDUMP TABLE

resource角色

角色名权限
RESOURCECREATE SCHEMA
RESOURCECREATE TABLE
RESOURCECREATE VIEW
RESOURCECREATE PROCEDURE
RESOURCECREATE SEQUENCE
RESOURCECREATE TRIGGER
RESOURCECREATE INDEX
RESOURCECREATE CONTEXT INDEX
RESOURCECREATE LINK
RESOURCECREATE PACKAGE
RESOURCECREATE SYNONYM
RESOURCECREATE PUBLIC SYNONYM
RESOURCEINSERT TABLE
RESOURCEUPDATE TABLE
RESOURCEDELETE TABLE
RESOURCESELECT TABLE
RESOURCEREFERENCES TABLE
RESOURCEGRANT TABLE
RESOURCEINSERT VIEW
RESOURCEUPDATE VIEW
RESOURCEDELETE VIEW
RESOURCESELECT VIEW
RESOURCEGRANT VIEW
RESOURCEEXECUTE PROCEDURE
RESOURCEGRANT PROCEDURE
RESOURCESELECT SEQUENCE
RESOURCEGRANT SEQUENCE
RESOURCEEXECUTE PACKAGE
RESOURCEGRANT PACKAGE
RESOURCESELECT ANY DICTIONARY
RESOURCECREATE MATERIALIZED VIEW
RESOURCESELECT MATERIALIZED VIEW
RESOURCECREATE DOMAIN 
RESOURCEGRANT DOMAIN
RESOURCEUSAGE DOMAIN
RESOURCEDUMP TABLE


dba角色
是一组数据库管理员具备的系统权限和对象权限的集合

模式的可移植性

在SQL标准里,同一个模式下的对象是不能被不同的用户拥有的,而且有些数据库系统不允许创建和它们的所有不同名的模式,模式和用户的概念几乎是一样的,比如oracle数据库。

因此,许多用户考虑对名字加以修饰,使它们真正由"username.tablename"组成。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论