检查数据库是否存在并且当前登录可以访问

2024-04-22

我知道我可以使用...检查数据库是否存在

SELECT * FROM sys.databases WHERE name = 'database_name'

or...

SELECT DB_ID('database_name')

无论当前登录是否有权访问,都可以执行此检查database_name。例如,如果当前登录没有访问权限,则此语句...

USE database_name

...将失败并显示以下消息是可以理解的:

The server principal "login_name" is not able to access the database "database_name" under the current security context.

我想要的是一个查询来告诉我当前登录是否可以访问当前数据库。我尝试用 try catch 包裹起来......

begin try
    use database_name;
end try
begin catch
    select 'cannot access database_name'
end catch

...但这会产生与上面相同的错误,甚至没有达到目的。这让我感到惊讶——我希望能收到自定义消息。也许你不能拥有USEtry catch 块内的语句,但无论如何,try..catch 看起来像是一个 hack。

那么有没有一个查询只返回当前登录可以访问的数据库呢?我想在 SSIS 包中使用它来确定数据库是否存在and可以在继续之前访问。正如现在所写的(使用IF EXISTS...),执行 SQL 任务返回 true,则以下步骤失败。我宁愿执行 SQL 任务返回 false,并且以下步骤甚至不执行。

作为参考,我使用的登录名仅分配给“公共”服务器角色。


try:

Select HAS_DBACCESS('YourDatabaseNameHere')

如果返回 1,则登录名具有访问权限。 0表示无访问权限。 NULL 表示数据库不存在。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查数据库是否存在并且当前登录可以访问 的相关文章

  • TSQL:无法对 COUNT(*) 执行聚合函数 AVG 来查找一天中最繁忙的时间

    考虑一个保存日志数据的 SQL Server 表 重要的部分是 CREATE TABLE dbo CustomerLog ID int IDENTITY 1 1 NOT NULL CustID int NOT NULL VisitDate
  • 如何在 SQL Server 2008 中使用 GUID 数据类型?

    我想使用建立一个员工表SQL SERVER 2008 在我的表中 我希望为每个员工提供一个 ID 我听说过GUID我有点明白它是一种数据类型 但我无法使用它 你能告诉我使用它的方法吗 顺便说一句 假设我想要这样的东西 CREATE TABL
  • 使用 AT TIME ZONE 获取指定时区的当前时间

    我正在尝试使用新的在 SQL Server 2016 和 Azure SQL 中 我只是想获取伦敦的当前时间datetime 针对夏令时进行调整 运行以下所有命令时 伦敦时间为凌晨 3 27 点 第一步是获得一个datetimeoffset
  • C# 查询两个数据库的数据

    我目前有一个查询 我正在从两个不同的数据库获取数据 这些数据被附加到一个名为 accountbuys 的列表中 我的第一个表有三个数据条目 3个想要购买股票的帐户 下一张表有 17 个数据点 购买 17 只股票 I am merging t
  • Sql批量复制截断小数

    当我使用批量复制将十进制值从 C DataTable 插入 Sql Server 2005 时 值会被截断而不是四舍五入 DataTable 中的数据类型为 Decimal 数据库中的数据类型为Decimal 19 3 数据表中的值为 1
  • 从 SQLCE 4 迁移到 SQL Server 2008

    因此 作为早期采用者 我开发了一个基于 SQLCE4 ASP Net MVC3 和实体框架CTP5 http www microsoft com downloads en details aspx FamilyID 35adb688 f8a
  • 如何在SQL Compact Edition中导入数据? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我似乎没有找到合适的工具 也没有找到
  • 从VBA中的数组批量插入到sql中

    我正在尝试在 Excel 中构建一个按钮 将所选区域上传到 SQL Server 中的表中 第一行将自动视为列标题 这件事该怎么继续下去呢 我想要的是简单和超快的上传 这是我的想法 我将选择选定的区域 然后将其保存为 txt 文件 然后对其
  • 如何防止 SQL Server 在导入数据时去除前导零

    A data file被导入到SQL Server桌子 数据文件中的一列是文本数据类型 该列中的值只能是整数 SQL Server 数据库中目标表中的相应列的类型为varchar 100 但在数据导入后 SQL Server 会存储以下值
  • 打开脚本任务时 SSIS 丢失文件引用

    我们使用自定义审核程序集 C 在脚本任务中记录 SSIS 中的多种操作 我们将在 GAC 中构建自定义程序集 用于运行时 并发布到 IDE VS2008 的公共程序集区域以供设计时文件引用 后构建完成后 自定义程序集可在运行时使用 并可在文
  • 为什么某些字符无法从 CFQUERY 正确注入到 SQL Server?

    我有一个在 Lucee 上运行的 Coldfusion 应用程序 它连接到 SQL Server 数据库 当我直接在 SQL Server 管理器中运行以下查询时 UPDATE article SET content 20m WHERE i
  • 时间分组的 TSQL 滚动平均值

    这是以下内容的后续内容 TSQL 按 N 秒分组 https stackoverflow com questions 5513176 tsql group by n seconds 我得到了我想要的东西 但没有要求正确的东西 如何获得 1
  • SSRS。如何在table1_Details_Group右侧创建新的行组?

    我正在使用 Microsoft Visual Studio 2013 创建报告 PROBLEM 如果我添加新的Row Group前面会自动添加table1 Details Group 问题 如何更改组的顺序或在右侧添加新组table1 De
  • 如何在 SQL Server 中添加具有自动增量值的字符串?

    如何在SQL Server中添加具有自动增量值的字符串 create table date sno int emp identity 1 1 我需要以下作为输出 emp 1 emp 2 用普通定义你的表INT IDENTITY column
  • SQL Server 查询结果集的大小

    SQL Server 中是否有确定结果集中 Mgmt Studio 查询中返回的数据大小 以 MEGS 为单位 您可以打开客户端统计信息 查询菜单 包括客户端统计信息 它给出执行查询时从服务器返回的字节数
  • SQL Server 中的动态透视多列

    我有一张这样的桌子 Id Name FromAddress ToAddress 1 Joey ABC JKL 2 Joey DEF MNP 3 Joey GHI OQR 我正在 SQL Server 中寻找带有动态数据透视表的以下输出 Na
  • SQL Server 使用通配符加入并在第一个匹配处停止

    IF OBJECT ID tempdb TABLE1 IS NOT NULL DROP TABLE TABLE1 IF OBJECT ID tempdb TABLE2 IS NOT NULL DROP TABLE TABLE2 CREATE
  • SQL Group BY,每个组的前 N ​​个项目

    我有一个 SQL 查询 可以获取给定商店中销量最高的 5 件商品 SELECT TOP 5 S UPCCode SUM TotalDollarSales FROM Sales S WHERE S StoreId 1 GROUP BY S U
  • 在存储过程结束时显式删除本地临时表有什么好处?

    考虑以下伪 T SQL 代码 由存储过程执行 CREATE TABLE localTable
  • 从一个sql服务器选择到另一个sql服务器?

    我想将一台服务器 Data Old S1 中的一个表 T1 在 DB1 中 中的数据选择到另一台服务器 Data Latest S2 中的另一个表 T2 在 DB2 中 中的数据 我怎样才能做到这一点 请注意服务器的命名方式 查询也应该考虑

随机推荐

  • 扩展 Three.js 类

    我想扩展 Three js Object3D 类 但不知道该怎么做 有一个 Stackoverflow 问题 我已经阅读 重新阅读和尝试过 但无法让它为我工作 有没有办法扩展 ThreeJS 对象 https stackoverflow c
  • Xcode 服务:选择 Git 分支

    我开始在 Mavericks 中设置新的 Xcode 服务 我创建了一个新的机器人 但没有询问我它应该构建的分支 如何为每个机器人选择分支 我不仅想建造master 但也有不同的分支 在当前版本中 当您在 Xcode 中创建机器人时 它将链
  • 如何将音乐播放器保留在页脚中,当我单击子页面的链接时,该音乐播放器不会重新加载?

    我已经尝试解决这个问题有一段时间了 并且浏览了许多论坛来寻找解决方案 这是我的设置 任何帮助将不胜感激 我目前有一个索引页 在 内容 部分的上方和下方加载 JavaScript 页眉和页脚 我在标题内还有一个导航链接列表 我的音乐播放器位于
  • 将向量::emplace_back与shared_ptr一起使用

    include
  • 无法让 mongoid 与 Rails 4 一起使用

    我是按照官方教程来的 http mongoid org en mongoid docs installation html 我在 Gemfile 中注释掉了 sqlite3 以及以下几行 gem mongoid gt 4 github mo
  • RandomNumberGenerator 与 RNGCryptoServiceProvider

    根据 MSDN 文档随机数生成器 http msdn microsoft com en us library system security cryptography randomnumbergenerator 28v VS 71 29 a
  • Android Fabric Twitter 分享监听器

    我使用 Fabric SDK 从我的应用程序发送推文 我构建了一个共享对话框并从活动中发送推文 Override protected void onCreate Bundle savedInstanceState super onCreat
  • 提取文本文件每行第一个逗号之前的文本

    我有一个如下所示的文件 Breve a writ used more frequently in the plural brevia Brevia magistralia official writs framed by the clerk
  • React Router V4 侧边栏菜单中的错误

    我正在开发一个单页 ReactJS Web 应用程序 但我知道我在定义路由时做错了什么React Router V4 我的问题如下 PrivateRoute in my routes js文件未按预期工作 也就是说 我不知道为什么 但我的侧
  • Node js 中的响应标头数据为 zip

    我已经尝试使用此代码在标头中发送响应 zip 但我这边缺少一些内容 在此我得到的响应如屏幕截图所示 这是我的代码 const zipPath test zip I have a zip with 2 files inside it pass
  • 如何在不使用某些框架的情况下在 php 中实现 MVC

    我对模型 视图 控制器模式有一些 也许是基本的 知识 我想使用它创建一个网站 但我发现如何实际实现这一点有点令人困惑 我陷入了细节之中 假设我有一个网站 每个用户都保存一些待办事项列表 你会如何处理这个问题 你会创建什么类 哪个类将输出 H
  • SQL Server 2008事务,需要回滚吗?

    我有一个存储过程BEGIN TRANSACTION and COMMIT TRANSACTION陈述 事务中是一个选择查询WITH XLOCK ROWLOCK 如果提供超出范围的值 则由于某些计算会导致算术溢出错误 交易可能会失败 此错误会
  • 非常慢:ActiveRecord::QueryCache#call

    我在 Heroku 上有一个应用程序 在 Puma 上运行 workers 2 threads count 3 pool 5 看起来有些请求被困在中间件中 这使得应用程序非常慢 非常 我看到其他人讨论过这个问题 但到目前为止还没有解决方案
  • digest_path 和 asset_digest_path 不允许摘要 URL

    我在制作资产方面经历了一段相当艰难的时期 归根结底 我试图重写 sprokets 辅助模块来尝试看看发生了什么 当我将其重写为以下内容时 module Sprockets module Rails module Helper def com
  • 使用 JavaScript 正则表达式进行全局匹配

    通常当你做类似的事情时 test match e 你会收到一个数组 e e 其中第一个元素是匹配本身 第二个元素是选择器 大括号 但是当使用全局修饰符时 如 test match e g 它会忽略匹配 但如果我根本不使用选择器则不会 我想知
  • Grafana:用于访问时间范围的[from,to]值的全局变量

    我正在使用 MySQL 数据源进行一些测试并利用时间过滤器 http docs grafana org reference templating the timefilter or timefilter variable在 SQL 查询中
  • 只读属性总是“原子的”吗?

    有时我们有一个简单的只读属性 其值可能会改变 property readonly NSFetchedResultsController FetchController property readonly NSFetchRequest Fet
  • 将子 DIV 移到父 DIV 之外

    我就直接进入正题吧 我有一个宽度为 100 的子 div 它位于具有固定宽度的包装器下 我想知道如何使子 div 突破 并具有 100 全屏页面宽度 代码是这样的 我尝试使用相对 绝对定位 但没有运气 div class wrapper S
  • (二进制、NDK)C 应用程序与 Java 应用程序的反编译(Dalvik 字节码)

    Well 由于我对重新设计很感兴趣 到目前为止我在 Android 重新设计上花费了大量时间 尽管如此 我还是遇到了编译二进制 C 代码 NDK 的问题 并且我知道将其反编译回 C C 比将 DEX 文件反编译回或多或少要困难得多 以及Ja
  • 检查数据库是否存在并且当前登录可以访问

    我知道我可以使用 检查数据库是否存在 SELECT FROM sys databases WHERE name database name or SELECT DB ID database name 无论当前登录是否有权访问 都可以执行此检