SQL 创建一个只读账户 .澳门新浦金网站

2019-09-27 17:44 来源:未知

分离和附加数据库

db_backoperator 可以备份数据库的用户(可以发布dbcc和checkPoint语句,这两个语句一般在备份前使用

事务日志文件

保存了用于恢复数据库的日志信息,每个数据库必须至少有1个日志文件。扩展名为.ldf。

bulkadmin 可以运行 bulk insert 语句  bulk insert 详细 http://blog.csdn.net/jackmacro/article/details/5959321

优点

(1) 用于报告目的。客户端可以查询数据库快照,以便利用创建快照时的数据编写报表。
(2) 用于保存历史数据以生成报表。数据库快照保留了某个时间点的历史数据,方便用户日后对该时间点的历史数据生成报表。
(3) 通过带有镜像数据库的数据库快照来访问镜像数据库,释放主体数据库上的资源。
(4) 使数据免受管理失误带来的影响
(5) 如果源数据库上出现用户错误,可以将数据库恢复到创建数据库快照时的状态。
(6) 管理测试数据库。在第一轮测试开始前,对测试数据库创建数据库快照。在测试结束后可利用数据库快照将数据库恢复到测试前的状态,以便重新开始测试。

注:数据库快照与源数据库相关,且无法对脱机和损坏的数据库进行恢复,不能替代备份和还原。所有恢复模式都支持数据库快照。

5、在“数据库角色成员身份”里选择"db_datareader",

无日志附加数据库命令
CREATE DATABASE test ON(
    FILENAME='C:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLDATAtest.mdf' 
)FOR ATTACH_REBUILD_LOG;

db_datareader 可以查看所有数据库中用户表内数据的用户

第一范式

对象的任意属性不能被拆分,每个属性有且仅有一个值,即没有重复的行,没有重复的列。

dbcreator   创建,修改,删除,还原任何数据库

预定义数据库角色

这些角色是内置的,不能被更改权限
(1) db_owner:可以做其他角色能做的所有事情,还可以做一些管理性操作
(2) db_accessadmin:可以通过添加或删除用户指定谁可以访问数据库
(3) db_securityadmin:可以修改角色成员身份和管理权限
(4) db_dlladmin:可以在数据库中运行所有DLL命令,创建修改和删除数据库对象而不必浏览其数据
(5) db_backupoperator:备份数据库
(6) db_datareader:读取所有用户所有表中的数据
(7) db_datawriter:可以添加更改删除所有用户所有表中的数据
(8) db_denydatareader:不能读取任何用户任何表中的数据
(9) db_denydatawriter:不能对任何用户任何表中的数据做添加更改删除的操作
(10) public:每个数据库用户都属于public角色,未对用户授予权限时该用户将继承public权限。该角色不能被删除。

 

标准角色

允许用户适用单一的权限来创建角色。如创建一个叫User的角色,允许用户INSERT,SELECT,UPDATE数据库中的指定表,不允许其他任务。

服务器角色参考 (可以对数据库的操作)

第五范式

在第四范式的基础上,可以分解成更小的表。从最终结构重新建立原始结构。

setupadmin     可以添加和删除链接服务器,并对可以执行某些系统执行存储过程(如,sp_serveroption)

恢复数据库快照

USE master
RESTORE DATABASE test FROM
DATABASE_SNAPSHOT='test_snapshot_201806271505';
GO

上述代码中,test是源数据库名称,test_snapshot_201806271505是快照名称。

db_denydatareader 不能看到数据库中任何数据的用户

应用程序角色

允许用户为特定应用程序创建密码保护

3、在常规里输入用户名和密码

附加数据库

利用分离出的数据文件和事务日志文件将数据库附加到其他服务器实例。可以附加复制的和分离的数据库。

db_accessadmin 可以添加,删除用户的用户

数据库文件和日志

db_securityadmin 可以管理数据库中与安全权限有关所有动作的用户

BCNF

在第三范式基础上,要求表中所有字段(包括主键)都互不相关,不存在依赖性。即主属性不依赖于主属性。

用户映射参考  (可以对数据库的数据进行操作)

修改数据库大小

可以通过为数据库新增一个次要数据库文件实现增大数据库容量

ALTER DATABASE School_MIS
ADD FILE(
    NAME='School_MIS1',
    FILENAME='E:School_MIS1.mdf',
    SIZE=3MB,
    MAXSIZE=10MB,
    FILEGROWTH=10%
)

上述代码中将新增的次要文件命名为School_MIS1,存储路径为E:School_MIS1.mdf,初始大小为3MB,增长的最大限制为10MB,自动增长的增量为10%

4、在"用户映射"里“映射到此登录名的用户”选择该用户可以操作的数据库

拒绝权限

拒绝用户hy在Customers表中的DELETE权限

USE test;
DENY DELETE
ON Customers
TO hy

注:REVOKE和DENY的区别在于,用户权限被DENY后无法通过其组或角色成员身份继承该权限,而权限被REVOKE后还可以通过继承和授予得到。

 

存储过程附加数据库命令
EXEC sp_attach_db @dbname='School_MIS',
@filename1='E:教务管理系统_DATA.mdf',
@filename2='E:School_MIS1.mdf',
@filename3='E:test_data.ndf',
@filename4='E:教务管理系统_LOG.ldf';

2、选择安全性->登录名->右键新建登录名

第二范式

在第一范式的基础上,要求所有非主属性都与主属性完全相关。假设属性1和属性2为主属性,属性3为非主属性,如果属性1或者属性2能唯一确定属性3,则不符合2NF,只有(属性1+属性2)能唯一确定属性3(有助于数据库基础性操作的实现)才符合2NF

db_datawrite 可以添加,修改,删除所有数据库用户表内数据的用户

查看数据库状态

(1) 通过查询master表中的sys.databases视图的state_desc列值来查看数据库状态,查询条件是数据库名称name

SELECT state_desc FROM sys.databases
WHERE name='test'

(2) 通过使用DATABASEPROPERTYEX()函数的STATUS属性来查看状态

USE test
GO
SELECT DATABASEPROPERTYEX('test','STATUS') AS '当前数据库状态';

SQL Server 2008提供了多种方法来查看数据库信息,如使用master数据库中的sys.database_files查看数据库文件信息,sys.filegroups查看数据库组的信息,sys.maste_files查看数据库文件基本信息和状态信息。除了目录视图和函数,还可以通过存储过程sp_spaceused查看数据库使用和保留的空间。

USE test
GO
EXEC sp_spaceused;

使用sp_helpdb查看数据库基本信息

EXEC sp_helpdb 'test';

db_denydatawrite 不能修改数据库中任何数据的用户

model数据库

存储了创建数据库时的一些预定义标准如数据库初始大小,特定信息集等,是tempdb数据库的基础。

1、进入sqlserver management studio

多个.mdf,.ndf,.ldf文件附加数据库命令
CREATE DATABASE School_MIS ON(
FILENAME='E:教务管理系统_DATA.mdf'),
(FILENAME='E:School_MIS1.mdf'),
(FILENAME='E:test_data.ndf'
)LOG ON(
FILENAME='E:教务管理系统_LOG.ldf'
)FOR ATTACH;

db_ddladmin 可以在数据库中执行ddl操作的用户,DDL(Data Definition Language)数据表的创建以及管理

用存储过程新建登录名和用户名

创建登录名huyan1,密码111111,默认数据库test,切换到test数据库下,创建登录名huyan1在test数据库中的用户hy1

EXECUTE sp_addlogin ‘huyan1’,’111111’,’test’
USE test
EXEC sp_adduser 'huyan1','hy1'

或使用sp_grantdbaccess创建一个与登录名相同的数据库用户名。

EXEC sp_addlogin 'hy2';
GO
USE test
EXEC sp_grantdbaccess 'hy2'

注:仅创建登录名而没有创建数据库用户名,该登录名无法正常登录数据库。可以使用sql语句创建数据库用户名,或者右键登录名—属性—用户映射中勾选数据库。创建和删除数据库用户名语句必须在该数据库下执行。用户名hy1默认权限public。

删除新建的登录名:

EXECUTE sp_droplogin ‘huyan1’

删除新建的用户名:

USE test;
EXECUTE sp_dropuser ‘hy1’

diskadmin   管理磁盘文件

Transact-SQL行构造器

例:用INSERT语句一次性插入多行数据

CREATE TABLE a(
    Column1 NVARCHAR(max),
    Column2 NVARCHAR(max)
);
Go
INSERT INTO a VALUES(‘1’,’1’),(‘2’,’2’),(‘3’,’3’);

sysadmin         在sql server中进行任何活动,该觉得的权限跨越所有其他固定服务器角色,默认情况下,windows builtinadmin组(本地管理员组)的所有成员都是sysadmin固定服务器角色的成员

数据库范式理论

范式理论是为了建立冗余较小结构合理的数据库所遵循的规则。关系数据库中的关系必须满足不同的范式。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、BCNF、第四范式(4NF)、第五范式(5NF)

processadmin   可以终止在数据库引擎实例中运行的程序

服务器角色

bulkadmin:允许运行BULK INSERT语句,用于从文本中大量插入数据到数据库中
dbcreator:允许创建,修改,删除和还原任何数据库,适用于助理DBA和开发人员
diskadmin:允许管理磁盘文件,比如镜像数据库和添加备份设备,适用于助理DBA
processadmin:允许多任务化的管理,可以通过多个进程做多件事情,也可以删除进程
securityadmin:安全管理员,管理登录名及其属性
serveradmin:服务管理员,更改服务器的配置选项和关闭服务器
setupadmin:管理链接服务器,控制启动的存储过程
sysadmin:有权执行任何任务,仅适用于数据库管理员

securityadmin   可以管理登录名及其属性,具有grant,deny,和revoke服务器和数据库级别权限,还可以重置sql server 登录名的密码

master数据库

存储了登录名和用户ID所属角色,系统配置,数据库名和初始化信息,是最重要的数据库。

serveradmin     可以更改服务器范围的配置选项和关闭服务器

TAG标签:
版权声明:本文由澳门新浦金网站发布于数据库,转载请注明出处:SQL 创建一个只读账户 .澳门新浦金网站