标签: users

比较两个用户对 SQL Server 数据库的权限?

是否可以比较两个用户对一个 SQL Server 数据库的权限?
有什么简单的查询可以做到吗?

我问这个是因为我想知道用户 B 在数据库上是否与用户 A 具有不同或相同级别的权限。

sql-server permissions users

4
推荐指数
2
解决办法
9568
查看次数

SQL Server 服务帐户

我们有一台新的 Windows 2016 服务器,我必须安装 SQL Server 2016 标准版。安装和配置 SQL 服务器后,我会将现有的生产数据库移动到新的数据库服务器。

我可以远程桌面访问服务器以安装 SQL 服务器,但不确定是否需要域服务帐户?我的印象是 SQL 服务器在安装过程中分配的默认服务就足够了。

问题 1:

DB Admin 团队将远程桌面连接到该服务器并使用 SSMS 连接到 SQL 服务器,而不是从他们的本地 SSMS。在这种情况下,我是否必须拥有域服务帐户?

问题2:

DB支持的应用程序将有几百个用户通过网络连接?在这种情况下,默认服务帐户就足够了,还是我必须拥有域服务帐户?

我是数据库管理领域的新手,所以我仍然在为几个概念苦苦挣扎。

sql-server users sql-server-2016

4
推荐指数
1
解决办法
3784
查看次数

创建用户时应以哪种形式提供 Microsoft SQL 密码?

我正在根据这篇 MSDN 文章的指导创建一个 Microsoft SQL 服务器用户,并向系统提供以下命令:

CREATE LOGIN MyName WITH PASSWORD = 'MyPass';
使用我的$DatabaseName;
CREATE USER MyName FOR LOGIN MyName;
走

我使用 SQL Studio 通过单击Logins列表中的名称再次查看密码。在那里我看到密码上的星号太多了,它可能代表我给定的密码。

我的问题是,如果我根据我写的(纯文本)提供密码,我是否正确提供了密码?我在登录数据库时遇到问题,我现在不知道那里的密码是否正确。

(MSDN 上的链接没有说明任何关于加密的内容,但我不能说示例密码是否遵循某些加密规则。)

sql-server-2008 users password

3
推荐指数
1
解决办法
164
查看次数

删除 Windows 登录后,数据库用户未报告为孤立用户

我删除了 SQL Server Windows登录。然后我运行下面的代码来检查孤立的数据库用户。但是,与删除的 Windows 登录对应的数据库用户不会显示为孤立用户。

为什么会这样?

EXEC sp_change_users_login @Action = 'Report';
Run Code Online (Sandbox Code Playgroud)

sql-server users logins

3
推荐指数
1
解决办法
1918
查看次数

MySQL 服务在尝试向用户授予权限后停止

我正在使用 MySQL 5.6,我试图为特定数据库创建一个超级用户,但我得到了

ERROR 1396 (HY000): Operation CREATE USER failed for 'superuser'@'%'
Run Code Online (Sandbox Code Playgroud)

然后我想也许已经有一个用户名和密码相同。我刷新了权限并运行以下查询:

grant all privileges on db1.* to 'superuser'@'localhost' 
Run Code Online (Sandbox Code Playgroud)

在该查询之后,我得到:ERROR 2013 (HY000): Lost connection to MySQL server during query 并且 MySQL 服务停止工作。

mysql permissions mysql-5.5 users mysql-5.6

3
推荐指数
1
解决办法
8928
查看次数

DROP LOGIN 在 SQL Server 2014 上失败

我们有一个所有者为“dbowner”的数据库。我们的安装过程删除用户“dbowner”的登录名并重新创建它。

在任何其他版本的 SQL Server 上,以下 SQL 查询成功:

USE [master]
DROP LOGIN 'dbowner'
Run Code Online (Sandbox Code Playgroud)

在 SQL Server 2014 上,相同的查询返回以下错误:

登录 'dbowner' 拥有一个或多个数据库。在删除登录之前更改数据库的所有者。

谁能解释为什么这在 SQL Server 2014 上会有所不同?删除登录适用于所有其他版本的 SQL Server(2005、2008 和 2012)。

是否有任何设置可以强制在 SQL Server 2014 上使用相同的设置?

更新:

我可以用一个使用 Windows 用户的例子来复制这个。有任何想法吗?

CREATE LOGIN [comp\winuser] FROM WINDOWS;
GO
CREATE DATABASE mydb;
GO
ALTER AUTHORIZATION ON DATABASE::mydb TO [comp\winuser];
GO
DROP LOGIN [comp\winuser];
GO
Run Code Online (Sandbox Code Playgroud)

更新 2:

谢谢您的意见。我同意删除所有者的登录名是不可取的(但除 SQL Server 2014 外,其他地方的 Windows 用户都可以使用)。然而,我们的安装脚本目前依赖于它,极其复杂的数据库安装过程是 15 年前某个人制作的(他不再与我们合作了)。如果可能(只要它有效),我们希望避免更改该领域。

在我看来,我们有三个选择:

  1. 使 SQL 2014 像以前的版本一样运行并保持脚本不变。我们更喜欢这个选项,我在这里发帖看看是否可以做到。
  2. 将所有者更改为其他用户,删除并创建所有者登录并将所有者移回。这是一个黑客,但可能会奏效。
  3. 改变我们处理用户的方式并停止放弃所有者的登录。这将是正确的方法,但也是最大的变化。

security sql-server users logins sql-server-2014

3
推荐指数
1
解决办法
7702
查看次数

MySQL:'user'@'hostname' vs 'user'@'IPaddress'

我需要一个用户能够从机器 foobarhost,IP 10.11.12.13 登录我们的 MySQL 服务器 5.6。

因此我创建了一个用户,'joe'@'foobarhost'但他无法登录。我必须创建一个用户'joe'@'10.11.12.13',这次工作正常。

我的问题:MySQL 如何处理有关用户的主机名和 IP 地址?

MySQL在检查匹配之前对用户表进行排序,使用 IP 地址和主机名作为要匹配的最具体的值。但是,文档没有指定优先级 - 主机名或 IP。MySQL 是否尝试主机名解析,如果失败,则对 IP 执行检查?

用户表的推荐用法是什么:仅指定 IP 地址、主机名或两者(如我在上面的示例中所做的那样)?

mysql users

3
推荐指数
1
解决办法
4219
查看次数

如果在主 postgres 数据库中创建用户,该用户是否会被复制到关注者?

假设在 postgres 9.6 中创建了一个具有某些特定权限集的用户:

CREATE USER foo_user WITH ENCRYPTED PASSWORD 'foo_password';
GRANT CONNECT ON DATABASE bar_db TO foo_user;
GRANT USAGE ON SCHEMA public TO foo_user;
GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO foo_user;
GRANT SELECT ON ALL TABLES IN SCHEMA public to foo_user;
Run Code Online (Sandbox Code Playgroud)

(从这里复制并修改。)

如果该用户是在主数据库上创建的,并且有一个与WAL 流复制同步的关注者,那么该用户是否会自动在关注者上创建一个具有相同权限集的用户?

看起来答案是肯定的,因为用户和权限是用表表示的,并且这些特殊表可能与任何其他预写日志记录表一样对待。但我无法在任何这些文档页面中 确认这一点。可以证实或揭穿我的想法吗?最好向我指出一些我似乎找不到的相关文档?

postgresql replication users

3
推荐指数
1
解决办法
1186
查看次数

跨数据库视图 - 无法在当前安全上下文下访问数据库

我们有两个数据库,Adb和Bdb. 在Bdb,我们创建了一个观点,即引用另一种观点认为Adb,像这样:CREATE VIEW Bdb.dbo.Bview AS SELECT * FROM Adb.dbo.Aview。

我们有一个 SQL Authenticated Blogin,映射到Buser,Adb和Bdb,至少db_datareader在两者上都有角色。

以下不起作用:

USE Bdb;
EXECUTE AS USER = 'Buser';
SELECT * FROM Bdb.dbo.Bview;
SELECT * FROM Adb.dbo.Aview;
Run Code Online (Sandbox Code Playgroud)

两个选择都会引发以下错误:

Msg 916, Level 14, State 1, Line 4
The server principal "Buser" is not able to access the database "Adb" under the current security context.
Run Code Online (Sandbox Code Playgroud)

但是,这有效:

USE Adb;
EXECUTE AS USER …
Run Code Online (Sandbox Code Playgroud)

sql-server permissions sql-server-2012 users

3
推荐指数
1
解决办法
1万
查看次数

查找用户在sql server中执行的查询

我想找到特定用户在一段时间内在数据库中执行的所有查询。

我了解了跟踪和 XEvents,但这些尚未设置,我仍然能够获取特定用户执行的查询吗?

sql-server users log trace

3
推荐指数
1
解决办法
3万
查看次数