相关疑难解决方法(0)

在 SQL Server 中使用架构的最佳实践有哪些?

我了解SQL Server 架构的功能,但最佳实践是什么?当然,它们提供了另一层安全性,并在数据库内提供数据库对象的逻辑分组,但那里的典型情况是什么?根据我的经验,我经常看不到许多定制的模式被利用。这是典型的吗?是不是应该使用自定义模式的不太频繁的场景?

schema sql-server-2008 sql-server

26
推荐指数
2
解决办法
2万
查看次数

命名表和视图时应该遵循什么标准?

命名表和视图时应该遵循什么标准?例如,将 tbl_ 之类的内容放在表名的开头是否是个好主意?我是否应该以某种方式指定代码/查找表,例如 ct_、lut_ 或代码_?还有其他的做/不做吗?

我正在使用 MS SQL Server 并且有许多带有许多表的数据库,所以如果有一些我们可以用作标准并带有一些支持理性的东西会很好。

naming-convention relational-theory

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

为 SQL 用户设置对所有对象的权限

我有一个过程,它遍历数据库中的所有对象并为它们分配适当的权限给该对象。我想知道是否有更好的方法来做到这一点?我使用模型数据库来创建新数据库,因此每次创建新数据库时都必须运行它。这是它的外观的一个想法(注意:从一开始就丢失了一个块,它会删除所有用户并重新创建必要的用户;自从 SID 更改后,这是必要的):

CREATE PROCEDURE usp_SetPermissions 
AS 
 BEGIN

DECLARE @CurrentId INT
DECLARE @ObjectName NVARCHAR(128)
DECLARE @Message NVARCHAR(160)
DECLARE @Error INT
DECLARE @Sql NVARCHAR(256)

CREATE TABLE #tmpDbObjects 
(
   ID INT IDENTITY(1,1),
   ObjectName NVARCHAR(128),
   Completed BIT
)

INSERT #tmpDbObjects(ObjectName, Completed)
SELECT DISTINCT [Name], 0 As Completed 
FROM sys.objects 
WHERE [type] = 'U' AND is_ms_shipped <> 1

WHILE EXISTS (SELECT 1 FROM #tmpDbObjects)
 BEGIN
    -- Pick first uncompleted object
    SELECT TOP 1 @CurrentId = ID,
                 @ObjectName = ObjectName
    FROM #tmpDbObjects

    -- Grant permissions …
Run Code Online (Sandbox Code Playgroud)

security database-design sql-server

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