我想在MySQL中创建一个新用户,并且只对一个数据库提供完全访问权限,比如dbTest我用一个命令创建的数据库create database dbTest;.那些MySQL命令会做什么?
我有两个使用集成安全性的应用程序.一个分配Integrated Security = true连接字符串,另一个分配Integrated Security = SSPI.
是什么区别SSPI,并true在集成安全性的情况下?
我有一个具有应用程序角色的数据库.角色成员都属于Active Directory中的组.我没有赋予角色权限以从表中选择,而是赋予角色对其需要调用的所有存储过程的执行权限.
这工作正常,除了我的一个存储过程,它正在构建一些动态SQL并调用sp_executesql.
动态sql看起来像这样:
SET @SQL = N'
SELECT *
FROM dbo.uvView1
INNER JOIN uvView2 ON uvView1.Id = uvView2.Id'
EXEC sp_executesql @SQL
Run Code Online (Sandbox Code Playgroud)
此角色的用户无法调用存储过程.它给出了以下错误,我想这是一种预期:
对象'uvView1',数据库'Foobar',架构'dbo'上的SELECT权限被拒绝.
有没有办法让我的用户成功执行此proc而不赋予动态SQL中所有视图的角色权限?
今天,我遇到了一个从未遇到过的问题。
我已经开发了使用SQL Server数据库的应用程序。该应用程序具有访问数据库的Windows服务。
由于Windows服务使用网络服务作为用户,因此我需要将该用户添加到数据库中,以便它可以访问它。
该任务由我也开发的安装程序自动完成。
在该安装程序中,我有以下脚本片段:
USE [MyDB]
GO
IF NOT EXISTS(SELECT principal_id FROM sys.database_principals WHERE name = 'NT AUTHORITY\NETWORK SERVICE')
BEGIN
/****** Object: User [NT AUTHORITY\NETWORK SERVICE] Script Date: 26-10-2018 13:42:57 ******/
CREATE USER [NT AUTHORITY\NETWORK SERVICE] FOR LOGIN [NT AUTHORITY\NETWORK SERVICE] WITH DEFAULT_SCHEMA=[dbo]
ALTER ROLE [db_owner] ADD MEMBER [NT AUTHORITY\NETWORK SERVICE]
END
Run Code Online (Sandbox Code Playgroud)
该脚本几乎总是可以运行,但今天可以安装。
今天,安装是在Windows 7 PC(西班牙语)中进行的。安装程序发送了一条错误消息,提示“ NT AUTHORITY \ NETWORK SERVICE”用户不存在。
查看此问题,我发现该用户在该PC上被称为“ NT AUTHORITY \ Servicio de Red”,即西班牙语中的“ NETWORK SERVICE”。
这很奇怪,因为我还有其他安装有Windows 10西班牙语的PC,但是在该OS中,用户也被称为“ NT AUTHORITY \ NETWORK SERVICE”。
为了解决该PC上的问题,我只需要安装SQL …
sql-server security windows-authentication database-security network-service
我编写了以下存储过程:
CREATE PROCEDURE dbo.usp_DEMO
@LOGINSQL VARCHAR(30),
@DBNAME VARCHAR(40)
WITH EXECUTE AS owner
AS
DECLARE @SQL NVARCHAR(1000)
SET @SQL = 'USE'
SET @SQL = @SQL + ' ' + @DBNAME + ' ' + ' CREATE USER ' + ' '
+ @LOGINSQL + ' ' + ' FOR LOGIN ' + ' ' + @LOGINSQL + ' '
+ ' ALTER ROLE [DB_OWNER] ADD MEMBER ' + ' '
+ @LOGINSQL
EXEC sp_executesql @SQL
Run Code Online (Sandbox Code Playgroud)
像这样运行:
use master
go
exec usp_DEMO …Run Code Online (Sandbox Code Playgroud) 如果我在PostgreSQL中有一个带有绝密数据数据库的服务器,我的密码实际上是不可能猜到的(手工生成的各种奇怪字符的128个字符串).服务器密码实际上也是不可思议的.
除了密码猜测之外,从这个数据库中获取数据有多容易?
我试图了解有人获得对我服务器硬盘的物理访问所涉及的风险.
只是一个简单的问题:
假设我在数据库中的表上放置了一个插入触发器.
如果通过登录/用户"foobar"将数据插入该表.
触发器是否以与"foobar"相同的访问权限/权限执行?
非常感谢.
我想在MySQL上启用透明数据加密(TDE).我不介意整个数据库是否加密(而不是几个列或行或表).我正在使用它进行研究,所以我正在寻找一些开放和免费的东西.我找到了zNcrypt,但它是一个商业产品.它们本质上是使用开源的eCryptfs,但无法找到正确配置MySQL的方法.任何关于使用eCryptfs与MySQL或任何其他解决方案来启用TDE与MySQL的指针都会非常有用.谢谢!
我正在开发一个网络应用程序,正在考虑如何保持用户的身份完全匿名.
但是我得出的结论是,我无能为力 - 除了专注于保护数据库不被黑客入侵.
这是StackOverflow上的普遍共识还是我可能错过了任何方法?
所以我想到了:
有兴趣听听你的想法.
谢谢.