SQL Server 2000 建立角色,登陸使用者,安全使用者,批量授予許可權
阿新 • • 發佈:2022-05-09
前言
我在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'
引用
- https://dba.stackexchange.com/questions/96709/grant-permissions-to-all-tables-views-procedures-in-sql-server-2000
- https://www.cnblogs.com/zhou5791759/archive/2009/01/17/1377448.html
- https://docs.microsoft.com/zh-cn/sql/relational-databases/system-stored-procedures/sp-addlogin-transact-sql
- https://docs.microsoft.com/zh-cn/sql/t-sql/statements/create-login-transact-sql