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

相关文章

Linux中chmod权限设置方式

《Linux中chmod权限设置方式》本文介绍了Linux系统中文件和目录权限的设置方法,包括chmod、chown和chgrp命令的使用,以及权限模式和符号模式的详细说明,通过这些命令,用户可以灵活... 目录设置基本权限命令:chmod1、权限介绍2、chmod命令常见用法和示例3、文件权限详解4、ch

最新版IDEA配置 Tomcat的详细过程

《最新版IDEA配置Tomcat的详细过程》本文介绍如何在IDEA中配置Tomcat服务器,并创建Web项目,首先检查Tomcat是否安装完成,然后在IDEA中创建Web项目并添加Web结构,接着,... 目录配置tomcat第一步,先给项目添加Web结构查看端口号配置tomcat    先检查自己的to

Mysql 中的多表连接和连接类型详解

《Mysql中的多表连接和连接类型详解》这篇文章详细介绍了MySQL中的多表连接及其各种类型,包括内连接、左连接、右连接、全外连接、自连接和交叉连接,通过这些连接方式,可以将分散在不同表中的相关数据... 目录什么是多表连接?1. 内连接(INNER JOIN)2. 左连接(LEFT JOIN 或 LEFT

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

使用JavaScript操作本地存储

《使用JavaScript操作本地存储》这篇文章主要为大家详细介绍了JavaScript中操作本地存储的相关知识,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录本地存储:localStorage 和 sessionStorage基本使用方法1. localStorage

SpringBoot集成SOL链的详细过程

《SpringBoot集成SOL链的详细过程》Solanaj是一个用于与Solana区块链交互的Java库,它为Java开发者提供了一套功能丰富的API,使得在Java环境中可以轻松构建与Solana... 目录一、什么是solanaj?二、Pom依赖三、主要类3.1 RpcClient3.2 Public

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

mysql重置root密码的完整步骤(适用于5.7和8.0)

《mysql重置root密码的完整步骤(适用于5.7和8.0)》:本文主要介绍mysql重置root密码的完整步骤,文中描述了如何停止MySQL服务、以管理员身份打开命令行、替换配置文件路径、修改... 目录第一步:先停止mysql服务,一定要停止!方式一:通过命令行关闭mysql服务方式二:通过服务项关闭

SQL Server数据库磁盘满了的解决办法

《SQLServer数据库磁盘满了的解决办法》系统再正常运行,我还在操作中,突然发现接口报错,后续所有接口都报错了,一查日志发现说是数据库磁盘满了,所以本文记录了SQLServer数据库磁盘满了的解... 目录问题解决方法删除数据库日志设置数据库日志大小问题今http://www.chinasem.cn天发

SpringBoot整合kaptcha验证码过程(复制粘贴即可用)

《SpringBoot整合kaptcha验证码过程(复制粘贴即可用)》本文介绍了如何在SpringBoot项目中整合Kaptcha验证码实现,通过配置和编写相应的Controller、工具类以及前端页... 目录SpringBoot整合kaptcha验证码程序目录参考有两种方式在springboot中使用k