ON table|view
Download
Report
Transcript ON table|view
Today’s Objectives
Chapters 10 and 11
Security in SQL Server
– Manage server logins and database
users.
– Manage server-level, database-level,
and application access security.
– Develop a security plan, and determine
security requirements.
Authentication - Server level
Authentication gives you access to SQL
Server by using a login
Windows authentication – Access is
established through a trusted connection for
a Windows, Windows NT domain, or Active
Directory domain user or group
Mixed mode (Windows authentication and
SQL Server authentication) – Access is
established either through Windows
authentication or through the use of a SQL
Server login name and password
Comparison on Table 10-1
Authentication process
Windows authentication:
1. The client opens a trusted connection to
the server.
2. Windows user and group account
information is passed to SQL Server.
3. This is preferred way of authentication
– The user and group accounts are
checked against the server’s login
accounts in the sysxlogins table.
Authentication process
SQL Server authentication
– The client opens a non-trusted
connection.
1. A SQL Server login and password are
passed to the server.
2. The server verifies the login name and
password against the sysxlogins table.
Configuring authentication - EM
Creating a new login
Enterprise Manager
– Create Login Wizard
– EM Console
Transact SQL
– System stored procedures
– Tables 10-5 and 10-6
Once the login is created, it has to be
mapped to a SQL Server database user
account
The db user can be different than the login,
however it is not recommended
New login - Under Security
Windows login sp’s - Table 10-5
Sp_grantlogin – create login account
sp_grantlogin 'computer_or_domain\user_or_group'
Sp_denylogin – prevent user or group
from logging in
sp_denylogin 'domain_or_machine\user_or_group'
Sp_revokelogin – revokes login
account information
sp_revokelogin 'domain_or_machine\user_or_group'
Sp_defaultdb – identify default
database
sp_defaultdb 'login', 'database’
New SQL Server login
SQL Server login sp’s - Table 10-6
Sp_addlogin – create a SQL Server
login
sp_addlogin 'login' [, 'password']
[, 'database'] [, 'language'] [, 'sid']
[, 'encryption_option']
Sp_droplogin – delete SQL Server
login
sp_droplogin 'login’
Sp_password – set/change login
password
sp_password ['old_password' ,] 'new_password'
[, 'login_name']
Database Access - same as db user
Dropping logins
You cannot remove sa (the system
administrator default login).
You cannot remove any login that
owns jobs in the msdb database.
You cannot remove any login that is in
use and connected to SQL Server.
You cannot remove any login that
owns an existing database.
SQL Server Roles
Roles are analogous to Groups in NT/2000
Roles contain either logins or db users
Roles are a powerful tool that allow you to
collect users into a single unit against which
you can apply permissions.
Permissions granted to, denied to, or
revoked from a role also apply to any
members of the role
Types of SQL Server Roles: Fixed Server
Roles, Fixed Database Roles, User-defined
Roles and Application Roles
Fixed Server Roles
Sysadmin – Gods of SQL Server
– SA login is member of this role
Serveradmin – server options like
starting/stopping server, memory settings
Setupadmin – manager linked servers
Securityadmin – manager security
Processadmin – can kill processes
Dbcreator – can create databases
Diskadmin – backing up and restoring
databases
Bulkadmin - can execute Bulk Insert
statements
Table 10-2 has more details
Server Roles - EM under Security
Server role properties - Under Security
Server Roles - Using T-SQL
Sp_addsrvrolemember – add a login
to a server role
sp_addsrvrolemember 'login', 'role'
Sp_dropsrvrolemember – drop a login
from a server role
sp_dropsrvrolemember 'login', 'role’
Table 10-7 has more details
Fixed Database Roles
Db_owner – Gods of databases
– dbo (database owner) is member of this role
– SA login is mapped to the dbo user
Db_accessadmin – control the access to
database
Db_datareader – can read data from tables
Db_datawriter – can add and delete data
Db_ddladmin – can modify database
objects
Db_securityadmin – change db permissions
Db_backupoperator – backup database
Db_denydatareader – cannot read data
Db_denydatawriter – cannot change data
Table 10-4 has more details
Database role properties under DB folder
Database Roles - Using T-SQL
Sp_addrolemember – add members to
a database role
sp_addrolemember 'role', 'member'
Sp_droprolemember – drop a user
from a database role
sp_droprolemember 'role', 'member’
More in Table 10-9
Public role
Public role members can:
– Every database user is member of this
role and cannot be dropped from it
– Execute T-SQL statements that do not
require permissions
– Execute system-stored procedures that
retrieve information from databases to
which the user has access
– Access a database through the guest
account if one exists - The guest db
account lets a new login access a
database without being a user of that db
– Good security to remove guest account
In class Exercises
Make sure you have SSEMDB
database (instructions on Page 171)
Pages 334-335
Pages 339-341(steps 4 - 37 only)
Pages 345-346 (steps 4 - 10 only)
Pages 351- 353
Review the exercises with me to get
the credit
Permissions
Once the login has access to SQL
Server, still needs database
permissions
Roles have predefined permissions
Two types
Statement Permissions
Object Permissions
You can GRANT, DENY or REVOKE
permissions
Statement Permissions - Database level
BACKUP DATABASE
BACKUP LOG
CREATE DATABASE
CREATE DEFAULT
CREATE INDEX
CREATE PROCEDURE
CREATE RULE
CREATE TABLE
More in Table 11-1
Object permissions - Obbjects level
SELECT – supported for table and view
INSERT – supported for table and view
UPDATE – supported for table, view, and
column
DELETE – supported for table and view
REFERENCES – supported for table, view
EXECUTE – supported for stored
procedure, extended stored procedure
More in Table 11-2
GRANT
GRANT – When a user is granted a
permission, the user is allowed to
perform that action. Marked by check
Syntax is
GRANT [ALL PRIVILEGES] | permission [, n]
[(column [, n])] ON table|view
| ON table|view [(column [, n)]
| ON stored_proc|extended_stored_proc
| ON user_defined_function
TO account [, n]
[WITH GRANT OPTION]
[AS group|role]
DENY
DENY – A user cannot perform an
action that has been denied either
explicitly or through role membership.
Marked by X
Syntax is
DENY ALL [PRIVILEGES] | permission [, n]
[(column [, n])] ON table|view
| ON table|view [(column [, n)]
| ON stored_proc|extended_stored_proc
| ON user_defined_function
TO account [, n]
[CASCADE]
REVOKE
REVOKE – A revoked permission is a
neutral action. Marked by nothing
Syntax
REVOKE ALL [PRIVILEGES] | permission [, n]
[(column [, n])] ON table|view
| ON table|view [(column [, n)]
| ON stored_proc|extended_stored_proc
| ON user_defined_function
TO | FROM account [, n]
[CASCADE]
AS group|role
Application roles
Application roles have no members.
An application role is activated when a
user runs the application that the role
is defined for.
User account and role permissions are
ignored in the context of the
application.
A password is required for application
role activation.
Defining application roles
Sp_addapprole – create application
roles
sp_addapprole 'role', 'password'
Sp_approlepassword – change
application role password
sp_approlepassword 'role', 'new_password'
Sp_dropapprole – drop an application
role
sp_dropapprole 'role'
New application role
More Exercises
Pages 360
Pages 365-368
Pages 374-378
Pages 382 (optional)
Review the exercises with me to get
the credit
Next week - Chapters 12 and 13
Authentication strategy
Use Windows authentication if:
– You do not want to allow any connections other
than trusted connections.
– You want to manage account security and
passwords through Windows or as domain
accounts.
Use Mixed mode if:
– You need to support non-Windows clients.
– You need to support clients that are not domain
members.
– You need to support Internet access.
– You want to manage SQL Server security
separately from Windows or domain security.
Windows login failures
Wrong network libraries loaded – Only
Named Pipes, TCP/IP Sockets, and
Multiprotocol support trusted
connections.
No login name – You must create a
login name for the user or for a group
the user belongs to.
Login denied – If login is denied for a
user or a group the user belongs to,
the user will not be able to connect to
the server.
SQL Server login failures
Windows authentication mode – If the
server is configured to support
Windows authentication only, SQL
Server logins are not permitted.
Incorrect password – If a user forgets
his/her password, a system
administrator will have to change the
password to a new, known value.
Login deleted – Another possible
cause is that the login name has been
deleted.
Database Access (Authorization)
Determine if you need the guest account
Assign access rights need by all users to
public role
If the user will administer the database,
make them a member of db_owner
Use the database roles whenever possible
Use a user defined role if existing roles do
not satisfy the security needs
Use views and stored procedures to limit
access to database tables
Database permission notes
If a login name has not been mapped
to a database user, access is through
the Guest account only (if any).
All database users are members of the
public role.
Access permissions are cumulative of
all role memberships and explicit
assignments.
Denied access takes precedence over
granted access.