这里所有的内容基于下面的版本,后期随着版本可能有改动。
select * from v$version;
--DM Database Server x64 V7.6.0.96-Build(2018.09.19-97292)ENT
注意
角色就是一系列权限的集合,是方便用户操作的一个方式,因为把很多的权限(如很多表的查询权限,或者其他权限等)打包到一个角色中,后面要授予某个用户所有这些权限,只需要【grant
角色 to 用户】就可以了。达梦数据库默认有三个角色:DBA、RESOURCE、PUBLIC 三个角色。
DBA 角色中,是系统全部权限的即可,授予了 DBA,就是数据库系统中的老大了。
RESOURCE 角色中,是对应用户自己用户下的全部权限,授予了 RESOURCE ,就是用户可以在自己的用户下尽情操作了。
因此,相应的,我们这里分为三种情况:
情形1:
create user user_name_1 identified by passwd123456; – 其他什么也不做
情形2:
create user user_name_2 identified by passwd123456; grant resource to user_name_2; – 其他什么也不做
情形3:
create user user_name_3 identified by passwd123456;
grant dba to user_name_3;
情形4:
create user user_name_4 identified by passwd123456;
grant resource any table to user_name_4;
grant select any table to user_name_4;
说明:
情形1: 1. 这个用户可以除了不能再在自己用户下新建表外,增删改已有的表、包括删除已有的表。都是可以做的。 2. 当然,其他用户下,什么都做不了(查询都做不了,操作会报错没有权限) 3. 如果要给这个用户下新建对象怎么办呢,自然是只能用其他具有权限的用户(一般是管理员)在这个用户下新建对象就好了,这样,目标用户就可以查询到新的东西了。
关键点就是,这个用户,能在自己用户下搞事情,但是不能新建对象。—— 确实有场景需要这样的。
情形2: 这个用户下可以在自己用户下做任何事情;其他用户下,任何事情都做不了。
情形3: 这个用户可以在数据库上,为所欲为(所有的用户下),毕竟叫做:有了DBA权限嘛。所以,一般不会给这个权限的。
情形4: 这个就是构造一个查询用户的场景,他可以在自己的用户下为所欲为,同时,可以查询全库的数据,但是对于其他用户下的数据,不能做增删改。
总结:
一般情况下,情形2 是我们的需求;情形4 我们也经常需要。如果我们需要新建一个用户,只能查询特定的表,可以参考本文后半部分。
我们可以通过系统表去核查 三个角色(DBA RESOURCE PUBLIC)具体对应哪些具体权限: select * from DBA_SYS_PRIVS ;
现象描述
注意
如果要给一个用户全库的查询权限,grant select any table to your_username; 就可以了
如果只想给特定表的权限,参考后文即可。
希望有一个用户,只能看到自己模式下的表,而看不到其他模式下的表
或者控制一个用户只能看到自己制定表的权限。
应当如何配置权限?
—— 核心是 revoke public from user_test
处理方法
这里是一个例子:如何创建一个用户,只能看到指定的表。
–这个脚本用sysdba执行
create table sysdba.test (v1 int);
drop user test_u;
create user test_u identified by 111111111;
revoke public from test_u;
grant select on v$instance to test_u;
grant select on V$MPP_CFG_ITEM to test_u;
grant select on V$DATABASE to test_u;
grant select on V$DM_INI to test_u;
grant select on V$VERSION to test_u;
-- weblogic 11g test need 2019/9/11 16:59:22
备注:如果是17年的dmserver,就跳过这些步骤,直接
grant select on 你希望的它能查询的表 to aim_user_name;
就行了
因为,以前的版本,系统字典的权限是 dmserver 内置用户 sys的,
sysdba也不能(也没办法)控制,也就是 sysdba 也无法 revoke 和 grant 字典表的权限,
sysdba 不用管(也没法管)字典表的权限
grant select on test to test_u;
此时,用 test_u 登录manager,左侧导航栏则是能看到test 这个表
这里是相关的例子
可以这么做的一个缘由
-- sysdba 跑的
create table test_1 (v1 int);
insert into test_1 select level connect by level<=100;
create view test_v as select v1 from test_1 where v1<3;
grant select on test_v to test_u;
-- test_u 查的
select * from sysdba.test_v; --ok
select * from sysdba.test_1; -- 没有\[TEST_1\]对象的查询权限
…Notice::
select table 和 select any table 包括insert delete 等,所有不带any的描述的都是,自己用户下的权限。
This document was generated on 2021-05-12 at 23:50.
转载至:https://dms1101.gitee.io/dms/manager%EF%BC%88%E5%90%ABsql%E7%9A%84%E4%BD%BF%E7%94%A8%EF%BC%89%E9%83%A8%E5%88%86/%E3%80%90DM-%E7%94%A8%E6%88%B7%E6%9D%83%E9%99%90%E9%85%8D%E7%BD%AE%E3%80%91%E6%9D%83%E9%99%90%20%E6%8E%A7%E5%88%B6%20%E5%A6%82%E4%BD%95%20%E8%AE%A9%20%E4%B8%80%E4%B8%AA%20%E7%94%A8%E6%88%B7%20%E5%8F%AA%E8%83%BD%20%E8%AE%BF%E9%97%AE%E4%B8%80%E4%B8%AA%E8%A1%A8%20%E4%B8%94%20%E7%9C%8B%E4%B8%8D%E5%88%B0%20%E5%85%B6%E4%BB%96%20%E6%A8%A1%E5%BC%8F%20%E4%B8%8B%E7%9A%84%20%E8%A1%A8%20%E6%95%B0%E6%8D%AE%E5%BA%93%20%E7%94%A8%E6%88%B7%20%E6%9D%83%E9%99%90%E6%8E%A7%E5%88%B6%20manager%20%E7%9C%8B%E5%88%B0%E7%9A%84%E8%A1%A8%20%E6%8E%A7%E5%88%B6.html
我有一个在Linux服务器上运行的ruby脚本。它不使用rails或任何东西。它基本上是一个命令行ruby脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg
我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数
我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm
我意识到这可能是一个非常基本的问题,但我现在已经花了几天时间回过头来解决这个问题,但出于某种原因,Google就是没有帮助我。(我认为部分问题在于我是一个初学者,我不知道该问什么......)我也看过O'Reilly的RubyCookbook和RailsAPI,但我仍然停留在这个问题上.我找到了一些关于多态关系的信息,但它似乎不是我需要的(尽管如果我错了请告诉我)。我正在尝试调整MichaelHartl'stutorial创建一个包含用户、文章和评论的博客应用程序(不使用脚手架)。我希望评论既属于用户又属于文章。我的主要问题是:我不知道如何将当前文章的ID放入评论Controller。
我在新的Debian6VirtualBoxVM上安装RVM时遇到问题。我已经安装了所有需要的包并使用下载了安装脚本(curl-shttps://rvm.beginrescueend.com/install/rvm)>rvm,但以单个用户身份运行时bashrvm我收到以下错误消息:ERROR:Unabletocheckoutbranch.安装在这里停止,并且(据我所知)没有安装RVM的任何文件。如果我以root身份运行脚本(对于多用户安装),我会收到另一条消息:Successfullycheckedoutbranch''安装程序继续并指示成功,但未添加.rvm目录,甚至在修改我的.bas
之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m
注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配
1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模
大家好,我正在尝试设置一个开发环境,并且我一直在关注以下教程:Linktotutorial我做得不是很好,除了最基本的版本控制内容外,我对终端命令没有任何实际经验。我点击了第一个链接并尝试运行source~/.bash_profile我得到了错误;mkdir:/usr/local/rbenv/shims:权限被拒绝mkdir:/usr/local/rbenv/versions:权限被拒绝现在每次我加载终端时都会出现错误。bash_profile的内容;exportPATH=/usr/local/rbenv/bin:$PATHexportRBENV_ROOT=/usr/local/rbe
我是ruby的新手,正在配置IRB。我喜欢pretty-print(需要'pp'),但总是输入pp来漂亮地打印它似乎很麻烦。我想做的是默认情况下让它漂亮地打印出来,所以如果我有一个var,比如说,'myvar',然后键入myvar,它会自动调用pretty_inspect而不是常规检查。我从哪里开始?理想情况下,我将能够向我的.irbrc文件添加一个自动调用的方法。有什么想法吗?谢谢! 最佳答案 irb中默认pretty-print对象正是hirb被迫去做。Theseposts解释hirb如何将几乎所有内容转换为ascii表。虽