SQL Server 只读账号/只读登录名可查看存储过程及函数权限

本文主要是介绍SQL Server 只读账号/只读登录名可查看存储过程及函数权限,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

公司为了收紧生产数据库的登录名,目前我们公司生产数据库登录名基本赋予了sa账户的权限,这样做是很危险的,所以领导要求给运维同事授予数据库只读查询的账号,但同时又需要让运维同事可查看存储过程,因为存储过程和函数中有很多拦截异常的判断,当提示报错内容时,运维同事可以通过报错的关键字来查找错误是来自程序、存储过程或者是函数等等。

如下是通过关键字查询“自动化设备传入重量为空!请重新称重”:

SELECT 
NAME,[type],CASE 
WHEN [type]='F' THEN N'FOREIGN KEY 约束'WHEN [type]='FN' THEN N'标量函数'WHEN [type]='IF' THEN N'内联表值函数'
WHEN [type]='IT' THEN N'内部表'WHEN [type]='P' THEN N'存储过程'WHEN [type]='PK' THEN N'PRIMARY KEY 约束'
WHEN [type]='S' THEN N'系统基表'WHEN [type]='TF' THEN N'表值函数'WHEN [type]='U' THEN N'表(用户定义类型)'
WHEN [type]='UQ' THEN N'UNIQUE 约束'WHEN [type]='V' THEN N'视图' WHEN [type]='TR' THEN N'触发器' 
ELSE N'不知名名的' END AS 类型名称,create_date,modify_date
FROM sys.objects (NOLOCK) WHERE [object_id] IN (SELECT id FROM sys.syscomments(NOLOCK) WHERE [text] LIKE N'%自动化设备传入重量为空!请重新称重%') 
ORDER BY modify_date DESC

如下是通过关键字找到该报错来自于存储过程“Autogetweight_sp”中

NAME                                                                                                                             type 类型名称           create_date             modify_date
-------------------------------------------------------------------------------------------------------------------------------- ---- -------------- ----------------------- -----------------------
Autogetweight_sp                                                                                                                 P    存储过程           2017-04-28 10:00:47.080 2018-09-10 10:16:53.450(1 行受影响)

 

如下是通过只读账户queryuser(我自己建的只读账户)来查看上面找到的存储过程Autogetweight_sp

sp_helptext 'Autogetweight_sp'--这是查看整个存储过程,如果没有授权只读账户访问存储过程的权限,将会报错。消息 15009,级别 16,状态 1,过程 sp_helptext,行 54 [批起始行 0]
对象 'Autogetweight_sp' 在数据库 '我的生产数据库名' 中不存在或对于此操作无效。

如下开启/撤销只读账户可访问存储过程

USE TCsfc--(生产数据库名)
GRANT VIEW Definition TO queryuser--开启,只读账户queryuser在TCsfc数据库中可查看存储过程及标量值函数的权限USE TCsfc--(生产数据库名)
REVOKE VIEW Definition TO queryuser--撤销,只读账户queryuser在TCsfc数据库中可查看存储过程及标量值函数的权限

开启访问后通过只读账户queryuser来查看上面找到的存储过程Autogetweight_sp,因为存储过程太长就不粘贴复制。

 

这篇关于SQL Server 只读账号/只读登录名可查看存储过程及函数权限的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1002694

相关文章

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

SQL 中多表查询的常见连接方式详解

《SQL中多表查询的常见连接方式详解》本文介绍SQL中多表查询的常见连接方式,包括内连接(INNERJOIN)、左连接(LEFTJOIN)、右连接(RIGHTJOIN)、全外连接(FULLOUTER... 目录一、连接类型图表(ASCII 形式)二、前置代码(创建示例表)三、连接方式代码示例1. 内连接(I

redis群集简单部署过程

《redis群集简单部署过程》文章介绍了Redis,一个高性能的键值存储系统,其支持多种数据结构和命令,它还讨论了Redis的服务器端架构、数据存储和获取、协议和命令、高可用性方案、缓存机制以及监控和... 目录Redis介绍1. 基本概念2. 服务器端3. 存储和获取数据4. 协议和命令5. 高可用性6.

在MySQL执行UPDATE语句时遇到的错误1175的解决方案

《在MySQL执行UPDATE语句时遇到的错误1175的解决方案》MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引... mysql 中遇到的 Error Code: 1175 是由于启用了 安全更新模式(Safe Upd

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API