適用場(chǎng)景
為了用戶能夠更好的使用和理解華為云 RDS for SQL Server ,rdsuser賬號(hào)的權(quán)限邊界如表1所示。
用戶可以通過(guò)給出的腳本在rdsuser下創(chuàng)建子賬號(hào)并進(jìn)行有效管理。
rdsuser權(quán)限
下創(chuàng)建并管理子賬號(hào)1.jpg)
創(chuàng)建子賬號(hào)
通過(guò)如下腳本,可快速的通過(guò)rdsuser創(chuàng)建子賬號(hào)。
說(shuō)明:
本腳本只適用于SQL Server 2014及以上版本,2008R2需要修改一些地方,請(qǐng)自行判斷處理。
use [master] DECLARE @DBName NVARCHAR(128) DECLARE @SQL NVARCHAR(max) DECLARE @Login_Name nvarchar(128) DECLARE @Login_Password nvarchar(128) set @Login_Name = 'TestLogin3' --change your login name set @Login_Password = '1qaz!QAZ' SET @SQL=' USE [master] CREATE LOGIN '+@Login_name+' WITH PASSWORD=N'''+ @Login_Password +''', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF alter server role [processadmin] add member '+@Login_name+' alter server role [setupadmin] add member '+@Login_name+' GRANT VIEW SERVER STATE TO '+@Login_name+' WITH GRANT OPTION GRANT VIEW ANY DEFINITION TO '+@Login_name+' WITH GRANT OPTION GRANT VIEW ANY DATABASE TO '+@Login_name+' WITH GRANT OPTION GRANT CREATE ANY DATABASE TO '+@Login_name+' WITH GRANT OPTION GRANT ALTER SERVER STATE TO '+@Login_name+' WITH GRANT OPTION GRANT ALTER TRACE TO '+@Login_name+' WITH GRANT OPTION GRANT ALTER ANY SERVER ROLE TO '+@Login_name+' WITH GRANT OPTION GRANT ALTER ANY LOGIN TO '+@Login_name+' WITH GRANT OPTION GRANT ALTER ANY CONNECTION TO '+@Login_name+' WITH GRANT OPTION GRANT CONNECT SQL TO '+@Login_name+' WITH GRANT OPTION GRANT VIEW SERVER STATE TO '+@Login_name+' WITH GRANT OPTION ' print @SQL exec (@SQL) SET @SQL=' use [msdb] if exists(select top 1 1 from sys.sysusers where name = '''+ @Login_Name +''') begin ALTER USER '+@Login_name+' with login = '+@Login_name+'; end else begin CREATE USER '+@Login_name+' FOR LOGIN '+@Login_name+'; end ALTER ROLE [SQLAgentUserRole] ADD MEMBER '+@Login_name+' GRANT ALTER ON ROLE::[SQLAgentUserRole] TO '+@Login_name+' WITH GRANT OPTION GRANT ALTER ANY USER TO '+@Login_name+' WITH GRANT OPTION GRANT EXEC ON msdb.dbo.sp_delete_database_backuphistory TO '+@Login_name+' WITH GRANT OPTION GRANT EXEC ON msdb.dbo.sp_purge_jobhistory TO '+@Login_name+' WITH GRANT OPTION GRANT SELECT ON msdb.dbo.sysjobs TO '+@Login_name+' WITH GRANT OPTION; GRANT SELECT ON msdb.dbo.sysschedules TO '+@Login_name+' WITH GRANT OPTION; GRANT SELECT ON msdb.dbo.sysjobsteps TO '+@Login_name+' WITH GRANT OPTION; GRANT SELECT ON msdb.dbo.sysjobhistory TO '+@Login_name+' WITH GRANT OPTION; GRANT SELECT ON msdb.dbo.syscategories TO '+@Login_name+' WITH GRANT OPTION; GRANT SELECT ON msdb.dbo.sysjobschedules TO '+@Login_name+' WITH GRANT OPTION; ' print @SQL exec (@SQL) SET @SQL=' use [tempdb] if exists(select top 1 1 from sys.sysusers where name = '''+ @Login_Name +''') begin ALTER USER '+@Login_name+' with login = '+@Login_name+'; end else begin CREATE USER '+@Login_name+' FOR LOGIN '+@Login_name+'; end GRANT CONTROL TO '+@Login_name+' ' print @SQL exec (@SQL) declare DBName_Cursor cursor for select quotename(name) from sys.databases where database_id > 4 and state = 0 and name not like '%$%' and name <> 'rdsadmin' open DBName_Cursor fetch next from DBName_Cursor into @DBName WHILE @@FETCH_STATUS = 0 begin SET @SQL=' USE ' + (@DBName) + ' if exists(select top 1 1 from sys.sysusers where name = '''+ @Login_Name +''') begin ALTER USER '+@Login_name+' with login = '+@Login_name+'; ALTER ROLE [db_owner] ADD MEMBER '+@Login_name+'; end else begin CREATE USER '+@Login_name+' FOR LOGIN '+@Login_name+'; ALTER ROLE [db_owner] ADD MEMBER '+@Login_name+'; end ' print @SQL EXEC (@SQL) fetch next from DBName_Cursor into @DBName end close DBName_Cursor deallocate DBName_Cursor
最新文章
- VPN賬號(hào)_免費(fèi)VPN賬號(hào)_VPN免費(fèi)賬號(hào)
- 如何創(chuàng)建用戶并授權(quán)使用應(yīng)用管理與運(yùn)維平臺(tái)_應(yīng)用管理與運(yùn)維平臺(tái)_創(chuàng)建用戶_用戶授權(quán)
- 如何創(chuàng)建用戶并授權(quán)使用應(yīng)用運(yùn)維管理服務(wù)_AOM_用戶權(quán)限_創(chuàng)建用戶_權(quán)限
- 容器鏡像創(chuàng)建用戶并授權(quán)使用SWR_華為云SWR_容器鏡像創(chuàng)建授權(quán)
- https免費(fèi)證書(shū)_免費(fèi)https證書(shū)_免費(fèi)的https有哪些
- https證書(shū)免費(fèi)申請(qǐng)_免費(fèi)的https證書(shū)申請(qǐng)_https免費(fèi)申請(qǐng)證書(shū)