2017-08-17 2 views
1

J'ai créé une base de données dans SQL Server 2014 et entré avec sa, est l'administrateur.Créer un utilisateur de licence SQL Server

Comment faire pour que le sa ait seulement l'autorisation de voir les procédures?

Et comment créer un autre utilisateur admin, en utilisant le code?

J'ai essayé

CREATE LOGIN ztestecom WITH PASSWORD = 'sqlserver'; 

Répondre

3

Vous ne pouvez pas supprimer 'sa' d'être un administrateur système. Il est généralement recommandé de désactiver le compte sa car il s'agit d'un compte connu qui aura toujours les droits d'administrateur système et donc l'utilisateur qui a le plus souvent tenté d'être piraté. Ceci étant dit, ceci créera un autre utilisateur qui sera sysadmin, puis créera un autre utilisateur et lui accordera la possibilité d'exécuter des procédures stockées dans toutes les bases de données utilisateur. Vous pouvez l'exécuter en tant que votre compte 'sa'.

-- Create new account with a very secure password 
CREATE LOGIN sqlmanager WITH PASSWORD = 'Now I am the master.'; 
GO 

-- Grant new account sysadmin rights 
ALTER SERVER ROLE [sysadmin] ADD MEMBER [sqlmanager] 
GO 

-- Create new role for executing procedures only in all user db's 
DECLARE @command varchar(1000) 

SELECT @command = ' 
IF ''?'' NOT IN(''master'', ''model'', ''msdb'', ''tempdb'') 
BEGIN 
    IF NOT EXISTS (select 1 from sys.database_principals where name=''db_executor'') 
    BEGIN 
     CREATE ROLE [db_executor];  
    END; 

    GRANT EXECUTE TO db_executor; 
END 
' 

EXEC sp_MSforeachdb @command 
GO 

-- Create new account for executing procedures 
CREATE LOGIN sqlexecutor WITH PASSWORD = 'You run along now'; 
GO 

-- Add new user to db_executor role in all user db db's 
DECLARE @command varchar(1000) 

SELECT @command = ' 
IF ''?'' NOT IN(''master'', ''model'', ''msdb'', ''tempdb'') 
BEGIN 
    IF NOT EXISTS(SELECT principal_id FROM sys.database_principals WHERE name = ''sqlexecutor'') 
    BEGIN 
     CREATE USER [sqlexecutor] FOR LOGIN [sqlexecutor] WITH DEFAULT_SCHEMA=[dbo];   
    END; 

    ALTER ROLE [db_executor] ADD MEMBER [sqlexecutor]; 
END 
' 

EXEC sp_MSforeachdb @command 
GO 

Enfin log REDUCTIONS sa et connectez-vous comme sqlmanager. Vérifiez que vous disposez des autorisations sysadmin, puis désactivez le compte sa

-- Disable sa account 
ALTER LOGIN [sa] DISABLE 
+0

Je l'ai fait de cette façon et cela a fonctionné –