SQLSERVER权限异常小记

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介: 前一段突然发现原来能正常使用的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
其实万变不离其宗,乍一看确实吓了一跳,最高管理员居然没有权限,但任何异常都可能发生,只要掌握其验证原理,就不难解决了.

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
6月前
|
SQL API 数据处理
实时计算 Flink版产品使用合集之sqlserver增量快照,用户需要什么权限
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
1月前
|
SQL 数据库
执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)之解决方案
执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)之解决方案
235 0
|
3月前
|
SQL 安全 数据库
"数据库守卫战:揭秘SQL Server中角色与权限的神秘面纱,一键打造坚不可摧的安全堡垒!"
【8月更文挑战第21天】数据库安全性对企业至关重要。SQL Server提供强大机制保障数据安全,包括用户角色管理和权限授权。本文以杂文形式介绍如何创建服务器角色和数据库角色,并通过SQL语句进行权限分配。从创建角色到添加用户、授权和撤销权限,再到最佳实践,帮助读者掌握SQL Server中的角色和权限管理,确保数据安全与完整性。
56 0
|
数据库
Sqlserver数据库中,跨权限执行语句
原文:Sqlserver数据库中,跨权限执行语句 问题来源:最近有同事需要执行批量删除语句。根据他提供的业务需求,推荐他使用“TRUNCATE TABLE”语句。但使用该语句需要 ALTER权限,这与执行用户的角色不符。
851 0
|
SQL Go 数据库
SQL Server遗失管理权限账号密码怎么办?
原文:SQL Server遗失管理权限账号密码怎么办? 假如一个SQL Server实例只允许“SQL身份认证”模式登录数据库,而糟糕的是你忘记了sa的密码(sa出于安全考虑应该被禁用,这里仅仅为了描述问题)或其它具有sysadmin角色的登录名的密码?个人就遇到这样一个案例,HK一同事在一台测试服务器安装了一个测试用途的SQL Server数据库,然后这个同事离职前没有交接这个测试服务器任何信息。
1130 0
|
SQL 存储 Go
SQL Server中授予用户查看对象定义的权限
原文:SQL Server中授予用户查看对象定义的权限 SQL Server中授予用户查看对象定义的权限   在SQL Server中,有时候需要给一些登录名(用户)授予查看所有或部分对象(存储过程、函数、视图、表)的定义权限存。
919 0
|
SQL
SQL SERVER普通用户需要什么权限才能执行sp_configure命令
原文:SQL SERVER普通用户需要什么权限才能执行sp_configure命令 SQL SERVER普通用户需要什么权限才能执行sp_configure命令呢? 例如如下存储过程所示 CREATE PROCEDURE PRC_TEST AS BEGIN    exec sp_configur...
1487 0
下一篇
无影云桌面