1. 程式人生 > 其它 >SQL Server 2000 建立角色,登陸使用者,安全使用者,批量授予許可權

SQL Server 2000 建立角色,登陸使用者,安全使用者,批量授予許可權

前言

我在2011年剛入門學習的時候,是從 SQL Server 2008 開始學的,再加上這些年較少接觸 SQL Server 2000,因此對它不是很熟。
之前都是在 SQL Server 2000 企業管理器 介面上操作建立角色、使用者、授權,對如何用SQL語句操作就更不熟悉了...
上週接手了個老專案,就重新學習了一下 SQL Server 2000。

例如建立一個用於連線訪問資料庫的登陸名,
在 SQL Server 2000 中,只能使用系統儲存過程提供的 sp_addlogin 建立登入名。
而在 SQL Server 2005 以上版本中,可以使用 CREATE LOGIN YourLoginUserName WITH PASSWORD YourLoginPassword

語句建立登入名。

給我感覺,SQL Server 2000 在建立角色、使用者、授權等SQL語句,跟 SQL Server 2005 以上差異很大。

正文

以abc_db資料庫為例

USE [abc_db]
GO

--在當前資料庫建立角色
EXEC sp_addrole 'abc_role'

--批量授權指定角色操作當前資料庫的表、檢視、儲存過程
DECLARE @sql NVARCHAR(4000);

SELECT @sql = @sql + N'GRANT EXECUTE ON dbo.' + QUOTENAME(name) + N' TO [abc_role];' FROM sysobjects WHERE type = N'P';
EXEC sp_executesql @sql;

SET @sql = N'';
SELECT @sql = @sql + N'GRANT INSERT, UPDATE, DELETE, SELECT ON dbo.' + QUOTENAME(name) + N' TO [abc_role];' FROM sysobjects WHERE type = N'U';
EXEC sp_executesql @sql;

SET @sql = N'';
SELECT @sql = @sql + N'GRANT INSERT, UPDATE, DELETE, SELECT ON dbo.' + QUOTENAME(name) + N' TO [abc_role];' FROM sysobjects WHERE type = N'V';
EXEC sp_executesql @sql;

--建立登陸使用者,並且指定預設資料庫
sp_addlogin  @loginame = 'abc_login', @passwd =  '123456' , @defdb =  'abc_db', @deflanguage = '簡體中文'

 --為登陸使用者 abc 在當前資料庫中新增安全賬戶 abc_user
EXEC sp_grantdbaccess 'abc_login','abc_user'

--新增安全使用者 abc_user 為角色 abc_role 的成員
EXEC sp_addrolemember 'abc_role','abc_user'

到這裡,就可以用abc_login這個登陸名訪問abc_db資料庫,對錶和檢視進行增刪改查、執行儲存過程這些基本操作了。

如果需要更進一步的許可權,可以額外加一句SQL,給abc_role角色賦予abc_db資料庫所有者許可權

EXEC sp_addrolemember 'db_owner','abc_role'

或者給abc_login登陸名賦予abc_db資料庫所有者許可權

EXEC sp_addrolemember 'db_owner','abc_login'

如果想要為abc_login這個登陸名賦予更大的系統許可權,允許訪問和操作所有資料庫,可以執行這一句SQL,等同sa使用者許可權。

EXEC sp_addsrvrolemember @loginame = N'abc_login', @rolename = N'sysadmin'

引用

  1. https://dba.stackexchange.com/questions/96709/grant-permissions-to-all-tables-views-procedures-in-sql-server-2000
  2. https://www.cnblogs.com/zhou5791759/archive/2009/01/17/1377448.html
  3. https://docs.microsoft.com/zh-cn/sql/relational-databases/system-stored-procedures/sp-addlogin-transact-sql
  4. https://docs.microsoft.com/zh-cn/sql/t-sql/statements/create-login-transact-sql