SQLSERVER权限异常小记

简介: 前一段突然发现原来能正常使用的ssms 在连接 sqlserver 后所有库都打不开了.无论打开哪个库都提示无法访问数据库xxx(objectExplorer).如图:初步怀疑是 ssms 的哪个组件损坏了, 那就用命令打开吧.
  前一段突然发现原来能正常使用的ssms 在连接 sqlserver 后所有库都打不开了.无论打开哪个库都提示无法访问数据库xxx(objectExplorer).如图:

image
初步怀疑是 ssms 的哪个组件损坏了, 那就用命令打开吧.熟练的新建查询, 快速的敲下了如下代码:

use AdventureWorks
go

居然还是报错!无法在当前安全上下文下访问数据库,如图:
image
竟然提示没有权限.my god!我可是用的 administrator 啊. windows下还有什么比这个权限更大的用户吗?先查一番当前账号是不是在管理员组.
image
实在是没有问题啊. 用windows验证怎么会没有库的权限? 这可是微软推荐的连接方式啊. 好吧,我们一步一步来:

  1. 查下sqlserver中显示的 administrator 的权限.
    操作方法是: 安全性,登录名,右键 administrator 属性,如图:

image

  1. 检查服务器角色,如图:
    image

哦.管理员居然没有 sysadmin 角色的权限?怪不得报错了. 那就勾上吧.
image
又报错!别急,咱们还有一招,当然是用 sa 使用 sqlserver 验证登录,然后给administrator 授予这个权限了. 可惜本人记性不好, 平时也用 windows 验证,忘了 sa 的密码了. 在这里能改吗? 我们试一下:
sa账号,右键,属性,更改密码,确定.
image
当然是又报错了.一个只有 public 权限的角色当然是绝不可能修改管理员的密码的. 那怎么办呢?
3.天无绝人之路.使出我们的终极大法.

  • 关闭sqlserver服务,关闭ssms, 以单用户模式启动,如图:
    image
  • 用 sqlcmd 连接实例.默认仍走windows验证.如图:
    image
  • 创建一个新的登录名,并加入到 sysadmin 角色成员中
    image
  • 关闭单用户模式,以正常模式启动,如图:
    image

注: mssqlserver 为安装时的实例名称

  • 用刚创建的账号 supersa, 使用 sqlserver验证登录ssms, 如图:
    image
  • 先检查下自己的权限,看是不是 sysadmin, 如图:
    image
  • 确认无误,我们就大胆修改 administrator 的权限吧.
    image

这次终于成功了.

  • 用 administrator 账号再登录一次试试看.
    image

这时候发现所有的库都可以正常打开了.如图:
image
其实万变不离其宗,乍一看确实吓了一跳,最高管理员居然没有权限,但任何异常都可能发生,只要掌握其验证原理,就不难解决了.

目录
相关文章
|
7月前
|
存储 SQL 数据库连接
C#程序调用Sql Server存储过程异常处理:调用存储过程后不返回、不抛异常的解决方案
本文分析了C#程序操作Sql Server数据库时偶发的不返回、不抛异常问题,并提出了解决思路。首先解析了一个执行存储过程的函数`ExecuteProcedure`,其功能是调用存储过程并返回影响行数。针对代码执行被阻塞但无异常的情况,文章总结了可能原因,如死锁、无限循环或网络问题等。随后提供了多种解决方案:1) 增加日志定位问题;2) 使用异步操作提升响应性;3) 设置超时机制避免阻塞;4) 利用线程池分离主线程;5) 通过信号量同步线程;6) 监控数据库连接状态确保可用性。这些方法可有效应对数据库操作中的潜在问题,保障程序稳定性。
591 11
|
SQL API 数据处理
实时计算 Flink版产品使用合集之sqlserver增量快照,用户需要什么权限
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
189 4
|
SQL 数据库
执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)之解决方案
执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)之解决方案
1494 0
|
SQL 安全 数据库
"数据库守卫战:揭秘SQL Server中角色与权限的神秘面纱,一键打造坚不可摧的安全堡垒!"
【8月更文挑战第21天】数据库安全性对企业至关重要。SQL Server提供强大机制保障数据安全,包括用户角色管理和权限授权。本文以杂文形式介绍如何创建服务器角色和数据库角色,并通过SQL语句进行权限分配。从创建角色到添加用户、授权和撤销权限,再到最佳实践,帮助读者掌握SQL Server中的角色和权限管理,确保数据安全与完整性。
378 0
|
数据库
Sqlserver数据库中,跨权限执行语句
原文:Sqlserver数据库中,跨权限执行语句 问题来源:最近有同事需要执行批量删除语句。根据他提供的业务需求,推荐他使用“TRUNCATE TABLE”语句。但使用该语句需要 ALTER权限,这与执行用户的角色不符。
910 0
|
SQL Go 数据库
SQL Server遗失管理权限账号密码怎么办?
原文:SQL Server遗失管理权限账号密码怎么办? 假如一个SQL Server实例只允许“SQL身份认证”模式登录数据库,而糟糕的是你忘记了sa的密码(sa出于安全考虑应该被禁用,这里仅仅为了描述问题)或其它具有sysadmin角色的登录名的密码?个人就遇到这样一个案例,HK一同事在一台测试服务器安装了一个测试用途的SQL Server数据库,然后这个同事离职前没有交接这个测试服务器任何信息。
1249 0
|
SQL 存储 Go
SQL Server中授予用户查看对象定义的权限
原文:SQL Server中授予用户查看对象定义的权限 SQL Server中授予用户查看对象定义的权限   在SQL Server中,有时候需要给一些登录名(用户)授予查看所有或部分对象(存储过程、函数、视图、表)的定义权限存。
1005 0
|
SQL 网络协议 测试技术
SQL Server事务遭遇网络异常时的处理机制浅析
原文:SQL Server事务遭遇网络异常时的处理机制浅析 SQL Server数据库中,如果应用程序正在执行一个事务的时候突然遭遇了网络异常,例如网络掉包,网络中断等,那么这个事务会怎么样? SQL Server数据库是通过什么机制来判断处理呢? 估计很多人跟我一样都有不少疑问, 我们下面构造一个测试实验来测试验证一下。
1041 0
|
SQL Windows 数据库
SQL SERVER 2014 Agent服务异常停止案例
原文:SQL SERVER 2014 Agent服务异常停止案例    生产环境一数据库服务器(SQL Server 2014)的Agent服务突然停掉了,检查了错误日志,发现在"SQL Server Agent"里面没有"SQLServerAgent terminated (normally)"的信息,只有如下错误信息   根据作业运行的日志信息,以及上面错误信息,可以判断SQL SERVER Agent服务应该在2016-04-24 9:20: PM(21:20)异常停止了。
1068 0