达梦数据库创建用户并授予
需求描述:
1.想创建一个用户,这用户能访问其他3个用户的资源,权限是只读,这种创用户的sql怎么写?
2.怎么修改用户密码呢?
环境:
通用机
一、创建用户并授权
1.创建业务用户步骤
step1:创建用户使用的默认表空间,
表空间可以设置路径:D:\dmdbms\data\newdb,在data下新建文件夹newdb
create tablespace "TBS_TEST" datafile 'TEST.DBF' size 1024 autoextend on ;
step2:创建用户并指定默认使用的表空间
create user "TEST" identified by "TEST@2023" default tablespace "TBS_TEST" default index tablespace "TBS_TEST";
step3:授予用户除了DBA外的所有角色
grant "PUBLIC","RESOURCE","SOI","VTI" to "TEST";
例子:
--创建表空间
create tablespace "TEST" datafile 'D:\dmdbms\data\newdb\TEST' size 1024 autoextend on ;
--创建用户
create user "TEST" identified by "123456" default tablespace "TEST" default index tablespace "TEST";--分配权限
grant "PUBLIC","RESOURCE","SOI","VTI" to "TEST";
--或者直接分dab权限
grant DBA to "TEST";
2.创建只读用户
step1:创建用户使用的默认表空间
create tablespace "TBS_READONLY_USER" datafile 'READONLY_USER.DBF' size 1024 autoextend on ;
step2:创建用户并指定默认使用的表空间
create user "READONLY_USER" identified by "TEST@2023" default tablespace "TBS_READONLY_USER" default index tablespace "TBS_READONLY_USER";
step3:授予用户只读权限
grant
SELECT TABLE
,SELECT ANY TABLE
,SELECT VIEW
,SELECT ANY VIEW
,SELECT SEQUENCE
,SELECT ANY SEQUENCE
,SELECT ANY DICTIONARY
,SELECT MATERIALIZED VIEW
,SELECT ANY MATERIALIZED VIEW to "READONLY_USER";
3.授予用户指定模式的只读权限
step1:创建用户使用的默认表空间
create tablespace "TBS_TEST" datafile 'TEST.DBF' size 1024 autoextend on ;
step2:创建用户并指定默认使用的表空间
create user "TEST" identified by "TEST@2023" default tablespace "TBS_TEST" default index tablespace "TBS_TEST";
step3:授予用户指定模式的只读权限
DECLARE
SQLSTMT STRING;
CURSOR CUR FOR SELECT ID,NAME FROM SYSOBJECTS WHERE TYPE$ = 'SCHOBJ' AND SUBTYPE$ IN ('STAB','UTAB') AND (PID=-1 OR PID=0) AND SCHID=(SELECT ID FROM SYSOBJECTS WHERE TYPE$='SCH' AND NAME='模式名' );
TYPE MYREC IS CUR%ROWTYPE;
REC_V MYREC;
BEGIN
FOR REC_V IN CUR LOOP
SQLSTMT = 'grant SELECT ON "模式名"."'|| REC_V.NAME || '" TO "TEST";';
EXECUTE IMMEDIATE SQLSTMT;
END LOOP;
COMMIT;
END;
注:GZAMR_SJJH 替换为指定模式即可。
角色的理解:
DBA:DM数据库系统中对象与数据操作的最高权限集合,拥有构建数据库的全部特权,只有DBA才可以创建数据库结构。
RESOURCE:可以创建数据库对象,对有权限的对象进行数据操纵,不可以创建数据库结构。
PUBLIC:不可以创建数据库对象,只能对有权限的数据库对象进行操纵。
VTI:角色具有系统动态视图查询权限。
SOI:角色具有系统表(SYS开头的表)的查询权限。
二.修改用户密码
alter user 用户名 identified by 新密码;
更多推荐
所有评论(0)