本文引用自:http://www.cnblogs.com/seerlin/archive/2009/02/05/1384901.html

 1mssql的T-SQL教程(从建登陆到建库、表和约束) 
  2mssql的T-SQL教程(从建登陆到建库、表和约束)--1,创建登录,可以有两种方式:
  3mssql的T-SQL教程(从建登陆到建库、表和约束)--(1)以SQL验证的方式新建一个新的登录:
  4mssql的T-SQL教程(从建登陆到建库、表和约束)    exec sp_addlogin 'allnen','all123'--创建登录,登录名和密码
  5mssql的T-SQL教程(从建登陆到建库、表和约束)
  6mssql的T-SQL教程(从建登陆到建库、表和约束)--(2)以windows验证的方式将windows中的某个用户授予登录数据库服务的权限:
  7mssql的T-SQL教程(从建登陆到建库、表和约束)    exec sp_grantlogin 'PC-200901051757\allnen'
  8mssql的T-SQL教程(从建登陆到建库、表和约束)--或者
  9mssql的T-SQL教程(从建登陆到建库、表和约束)    --create login [PC-200901051757\allnen] from windows
 10mssql的T-SQL教程(从建登陆到建库、表和约束)
 11mssql的T-SQL教程(从建登陆到建库、表和约束)--如果要删除某个登录,可以用如下方式:
 12mssql的T-SQL教程(从建登陆到建库、表和约束)    --drop login [PC-200901051757\allnen] 
 13mssql的T-SQL教程(从建登陆到建库、表和约束)
 14mssql的T-SQL教程(从建登陆到建库、表和约束)--2,现在就可以用allnen这个帐号登录,但这里先不要登录,我们先给这个帐号授予创建数据库和表的权限
 15mssql的T-SQL教程(从建登陆到建库、表和约束)
 16mssql的T-SQL教程(从建登陆到建库、表和约束)    exec sp_grantdbaccess @loginame='allnen',@name_in_db='allnenDbUser'--将登录名映射到当前数据库
 17mssql的T-SQL教程(从建登陆到建库、表和约束)
 18mssql的T-SQL教程(从建登陆到建库、表和约束)    --exec sp_revokedbaccess 'allnen'--从当前数据库中删除对应的登录用户映射,也就是去除某个用户访问此数据库的权限
 19mssql的T-SQL教程(从建登陆到建库、表和约束)
 20mssql的T-SQL教程(从建登陆到建库、表和约束)    grant create database,create table to allnen--授予当前用户创建数据库的权限
 21mssql的T-SQL教程(从建登陆到建库、表和约束)--如果要去除某个用户的权限,用revoke,如果要拒绝某个用户的相关权限,用deny,revoke和deny的区别,请查阅其他相关文章
 22mssql的T-SQL教程(从建登陆到建库、表和约束)    --deny create database to allnenDbUser
 23mssql的T-SQL教程(从建登陆到建库、表和约束)
 24mssql的T-SQL教程(从建登陆到建库、表和约束)--3,现在就可以用allnen这个帐号登录,然后创建数据库和表了
 25mssql的T-SQL教程(从建登陆到建库、表和约束)--有时候如果要创建的数据库已经存在 ,那创建数据库的时候就会出错,
 26mssql的T-SQL教程(从建登陆到建库、表和约束)--所以我们一般在创建数据库前都会先判断要创建的数据库是否已经存在,
 27mssql的T-SQL教程(从建登陆到建库、表和约束)--如果存在,就先将存在的数据库删除
 28mssql的T-SQL教程(从建登陆到建库、表和约束)    IF EXISTS(SELECT * FROM sysdatabases WHERE name='stuDB')
 29mssql的T-SQL教程(从建登陆到建库、表和约束)        drop database stuDB
 30mssql的T-SQL教程(从建登陆到建库、表和约束)    GO
 31mssql的T-SQL教程(从建登陆到建库、表和约束)--当然,也可以用db_id(数据库名)这个函数来判断
 32mssql的T-SQL教程(从建登陆到建库、表和约束)
 33mssql的T-SQL教程(从建登陆到建库、表和约束)--创建数据库的时候,有可能数据库文件已经存在,或者文件目录不存在等,所以,我们还要先在硬盘中创建对应的文件夹
 34mssql的T-SQL教程(从建登陆到建库、表和约束)
 35mssql的T-SQL教程(从建登陆到建库、表和约束)    exec sp_configure 'show advanced options'1--显示高级选项,然后才可以配置xp_cmdshell
 36mssql的T-SQL教程(从建登陆到建库、表和约束)    reconfigure--从新应用配置,让配置生效
 37mssql的T-SQL教程(从建登陆到建库、表和约束)    exec sp_configure 'xp_cmdshell',1--启用xp_cmdshell功能
 38mssql的T-SQL教程(从建登陆到建库、表和约束)    reconfigure
 39mssql的T-SQL教程(从建登陆到建库、表和约束)    exec xp_cmdshell 'mkdir D:\project\'--用xp_cmdshell创建目录
 40mssql的T-SQL教程(从建登陆到建库、表和约束)    GO
 41mssql的T-SQL教程(从建登陆到建库、表和约束)--开始创建数据库
 42mssql的T-SQL教程(从建登陆到建库、表和约束)    CREATE DATABASE stuDB
 43mssql的T-SQL教程(从建登陆到建库、表和约束)       ON  PRIMARY  --默认就属于PRIMARY主文件组,可省略
 44mssql的T-SQL教程(从建登陆到建库、表和约束)    (
 45mssql的T-SQL教程(从建登陆到建库、表和约束)     NAME='stuDB_data',  --主数据文件的逻辑名
 46mssql的T-SQL教程(从建登陆到建库、表和约束)     FILENAME='D:\project\stuDB_data.mdf',  --主数据文件的物理名
 47mssql的T-SQL教程(从建登陆到建库、表和约束)     SIZE=5mb,  --主数据文件初始大小
 48mssql的T-SQL教程(从建登陆到建库、表和约束)     MAXSIZE=100mb,  --主数据文件增长的最大值
 49mssql的T-SQL教程(从建登陆到建库、表和约束)     FILEGROWTH=15%   --主数据文件的增长率
 50mssql的T-SQL教程(从建登陆到建库、表和约束)    )
 51mssql的T-SQL教程(从建登陆到建库、表和约束)    LOG ON
 52mssql的T-SQL教程(从建登陆到建库、表和约束)    (
 53mssql的T-SQL教程(从建登陆到建库、表和约束)      NAME='stuDB_log',
 54mssql的T-SQL教程(从建登陆到建库、表和约束)      FILENAME='D:\project\stuDB_log.ldf',
 55mssql的T-SQL教程(从建登陆到建库、表和约束)      SIZE=2mb,
 56mssql的T-SQL教程(从建登陆到建库、表和约束)      FILEGROWTH=1MB
 57mssql的T-SQL教程(从建登陆到建库、表和约束)    )
 58mssql的T-SQL教程(从建登陆到建库、表和约束)    GO 
 59mssql的T-SQL教程(从建登陆到建库、表和约束)--如果要创建多个数据库文件或者多个日志文件,则可以用这样的方式
 60mssql的T-SQL教程(从建登陆到建库、表和约束)    CREATE  DATABASE  employees
 61mssql的T-SQL教程(从建登陆到建库、表和约束)      ON 
 62mssql的T-SQL教程(从建登陆到建库、表和约束)       (
 63       

 1 --1,用管理员登录
 2 --2,用管理员创建新数据库
 3 --3,用管理员创建新登录
 4 --4,授权新登录名访问新数据库的权限
 5 use master
 6 go
 7 exec sp_configure 'show advanced options',1
 8 reconfigure
 9 exec sp_configure 'xp_cmdshell',1
10 reconfigure
11 exec xp_cmdshell 'mkdir d:\Data\'
12 
13 
14 if exists(select * from sysdatabases where name='StuDb')
15 drop database StuDb
16 create database StuDb on primary 
17 (
18     name='StuDb',
19     filename='D:\Data\StuDb.mdf',
20     size=5MB,
21     filegrowth=15%
22 )
23 log on
24 (
25     name='StuDb_log',
26     filename='D:\Data\StuDb.ldf',
27     size=3MB,
28     maxsize=10MB,
29     filegrowth=10%
30 )
31 go
32 use StuDb
33 go
34 if exists(select *from sysobjects where name='StuInfo')
35     drop table StuInfo
36 go
37 create table StuInfo(
38     StuNo int identity(1,1),
39     StuName nvarchar(10)
40 )
41 go
42 if exists(select *from sysobjects where name='ScoreInfo')
43     drop table ScoreInfo
44 go
45 create table ScoreInfo(
46     ScoreInfoId int identity(1,1),
47     ExamScore float,
48     LabScore float,
49     StuNo int
50 )
51 --删除约束
52 alter table ScoreInfo
53     drop constraint CK_ExamScore,CK_LabScore
54 go
55 alter table ScoreInfo
56     alter column ExamScore numeric(5,2)
57 alter table ScoreInfo
58     alter column LabScore numeric(5,2)
59 go
60 --约束
61 alter table StuInfo
62     add constraint PK_StuNo primary key(StuNo)
63 alter table ScoreInfo
64     add constraint CK_ExamScore check(ExamScore>0 and ExamScore<100)
65 alter table ScoreInfo
66     add constraint CK_LabScore check(LabScore>0 and LabScore<100)
67 alter table ScoreInfo
68     add constraint FK_StuNo foreign key(StuNo) references StuInfo(StuNo)
69 go
70 
71 --授权windows用户访问数据库
72 
73     exec sp_grantlogin 'lab-04\administrator'--即将过期的方式
74     create login [lab-04\administrator] from windows----推荐方式
75 
76 drop login [lab-04\administrator]--删除登录
77 
78 create login t0811 with password='t0811'--创建新sql登录
79 
80 --创建新数据库用户,以前用sp_grantdbaccess,以后用
81 use StuDb
82 go
83 create user t0811InStuDb for login t0811
84 --授权访问表
85 grant select,delete,update,insert on StuInfo to t0811InStuDb
86 --取消权限
87 revoke delete on StuInfo to t0811InStuDb
88 --将t0811这个登录加入到sysadmin这个服务器级别角色中
89 --exec sp_addsrvrolemember 't0811','sysadmin'
90 
91 --将t0811InStuDb这个数据库用户加入到db_owner这个数据库级别角色中
92 exec sp_addrolemember 't0811InStuDb','db_owner'
93 --拒绝某个用户的某个权限
94 deny delete on StuInfo to t0811InStuDb
95 
96 
 

相关文章:

  • 2022-02-09
  • 2022-12-23
  • 2021-06-20
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-05
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-13
  • 2022-12-23
  • 2022-12-23
  • 2021-09-30
相关资源
相似解决方案