SAP HANA procudure 创建用户

SAP HANA中的用户是没有功能进行直接的拷贝的,但是我们可以通过建立存储过程调用,通过sql语句的方式进行拷贝:

存储过程定义如下,各位可根据自己的需求进行修改:

CREATE PROCEDURE SYSTEM.COPY_USER (IN V_SOURCE_USER NVARCHAR(256), IN V_TARGET_USER NVARCHAR(256), IN V_TARGET_PWD NVARCHAR(256)) LANGUAGE SQLSCRIPT AS
  V_FOUND INT := 1;
  CURSOR C_ROLE_LIST (V_SRC_USER NVARCHAR(256)) FOR
    SELECT ROLE_NAME, IS_GRANTABLE FROM "SYS"."GRANTED_ROLES" WHERE GRANTEE=:V_SRC_USER AND GRANTEE_TYPE=‘USER‘ AND GRANTOR=CURRENT_USER;
BEGIN
  SELECT COUNT(*) INTO V_FOUND FROM "SYS"."USERS" WHERE USER_NAME = :V_SOURCE_USER;
  IF :V_FOUND = 1 THEN
    EXEC ‘CREATE USER ‘ || :V_TARGET_USER || ‘ PASSWORD ‘ || :V_TARGET_PWD;
   
    FOR V_LIST_ROW AS C_ROLE_LIST(:V_SOURCE_USER) DO
      IF V_LIST_ROW.IS_GRANTABLE=‘FALSE‘ THEN
        EXEC ‘GRANT ‘ || V_LIST_ROW.ROLE_NAME || ‘ TO ‘ || :V_TARGET_USER;
      ELSE
        EXEC ‘GRANT ‘ || V_LIST_ROW.ROLE_NAME || ‘ TO ‘ || :V_TARGET_USER || ‘ WITH ADMIN OPTION‘;
      END IF;
    END FOR;
  END IF;
END;

调用方式如下:

CALL SYSTEM.COPY_USER (‘SYSTEM‘, ‘Ivan‘, ‘Initial1‘);

CALL COPY_USER (‘SOURCE_USER‘, ‘TARGET_USER‘, ‘INITIAL_PASSWORD‘)
 
在密码参数设置的时候,注意密码最短长度为8位,需要大小写和数据混合密码。
 
根据这个存储过程的使用方法,我们可以延伸出角色拷贝等多种应用场景!
时间: 2024-10-20 03:41:35

SAP HANA procudure 创建用户的相关文章

【HANA系列】SAP HANA XS创建XSJOB后台执行

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA XS创建XSJOB后台执行 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 详细配置等有时间在写(这一篇文章我在公众号里写了最详细的解析) 代码截图如下: 因为之前比较忙,没来得及解释一下这个XSJOB的参数 现在补充一下xscron的参数: "xscron": "

SAP HANA中的SLT简介

在以SAP系统作为主要ERP的企业中,不同系统之间的数据库数据同步是个重要的工作.对于这种需求,除了开发ABAP接口之外,也有高效的工具可用.SLT就是其中之一. SLT是SAP的第一个ETL(Extract-Transform-Load)工具,它允许实时加载和复制数据,或者将数据从源系统和非源系统调度到SAP HANA数据库. SAP SLT服务器使用基于触发器的复制方式以实现从源系统到目标系统的数据传递. SLT服务器可以安装在单独的系统或SAP ECC系统上. SLT系统的好处如下: 允许

【HANA系列】SAP HANA跟我学HANA系列之创建属性视图一

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA跟我学HANA系列之创建属性视图一 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 原文地址:https://www.cnblogs.com/SAPmatinal/p/11183754.html

【HANA系列】SAP HANA跟我学HANA系列之创建分析视图一

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA跟我学HANA系列之创建分析视图一 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 原文地址:https://www.cnblogs.com/SAPmatinal/p/11183735.html

【HANA系列】SAP HANA跟我学HANA系列之创建计算视图一

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA跟我学HANA系列之创建计算视图一 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 原文地址:https://www.cnblogs.com/SAPmatinal/p/11183695.html

云计算的一匹黑马——SAP HANA

云计算的一匹黑马--SAP HANA 现如今,正是风起云涌之时. 随着云计算的日新月异的发展,如何选择云计算服务已经成了企业决策者很关心的问题.如果选对了云计算,那么就有助于企业按需实现业务创新.提高业务灵活性,扩展现有基础架构,从而构建新流程,获得新洞察,快速调整业务流程,相应瞬息万变的全球化市场. 面对各种各样.令人眼花缭乱的云计算层出不穷,很多IT巨头都纷纷竞相角逐运市场.这对于企业而言是一件好事,为企业重新思考未来并推动前所未有的转型创造了契机. 在经济全球化的趋势之下,企业比以往更需要

报表软件FineReport如何连接SAP HANA

1. 环境搭建 1.1 环境准备 首先确认HANA Studio的环境是否允许工程进行NewFile的操作,不行的话要考虑更新Studio的版本. HANAStudio需要依赖Java jdk1.6或者1.7的版本 1.2 操作步骤 需要获取到SYSTEM账号的权限,在SYSTEM权限下进行操作 Adda System 填写正确的主机名(如IP地址)和HANA的instance number(询问管理员获得) 填写账号名和密码,点击finish Create repository 点击Repos

【公众号系列】超详细SAP HANA JOB全解析

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[公众号系列]超详细SAP HANA JOB全解析 写在前面 你一定知道SM36/SM37,ERP里的JOB我们都很熟悉,可以让一些功能性的程序定期地完成一些我们需要的指定性的操作.这样既可以节省时间,又可以避开服务器使用的高峰期,所以很多时候JOB是项目实施的必要手段. 那么,这些事情(定时执行定时任务的功能)是否可以在HANA里来完成呢,由于

SAP HANA Delivery Unit概念简述

介绍 在SAP HANA应用开发领域里,我们通常用package来存储modeler views和XS工程等模型.这些包应该被部署到最终的生产服务器上. Delivery Unit是SAP HANA原生开发对象的部署方式,可以被看成一系列包的集合,用于Transportation management的统一管理. SAP HANA提供了一个统一的管理平台,称为HANA Application Lifecycle Management来管理Delivery Unit. 只有具有权限"sap.han