zoukankan      html  css  js  c++  java
  • Security1:创建登录和用户

    登录(Login)用于登陆SQL Server,用户(User)用于访问数据库。创建Login之后,该Login能够登录到SQL Server实例,但是,仅仅被授予public角色,在访问数据库时,必须基于Login创建相应的数据库用户,Login和User通过SID关联。

    一,创建Login

    根据验证类型,Login分为SQL Server登录和Windows域登录,在创建登录时,可以设置默认数据库(Default Database),指定Login登录的默认数据库,默认值是master数据库。

    1,创建SQL Server 登录

    CREATE LOGIN login_name 
    WITH PASSWORD = { 'password' }
    ,DEFAULT_DATABASE = database

    2,创建Windows域登录

    如果创建Windows域登录,映射到一个Windows域账户,登录名必须使用Windows域格式: [<domainName><login_name>].

    CREATE LOGIN [<domain_Name><login_name>] 
    FROM WINDOWS
    WITH DEFAULT_DATABASE = database

    二,创建数据库用户(User)

    在SQL Server中,通常情况下,User的创建都是基于master 数据库中的Login,该Login的来源有三种:基于Windows 域用户,Windows 域用户组,或SQL Server 验证。

    1,创建User

    CREATE USER user_name 
    FOR LOGIN login_name 
    WITH DEFAULT_SCHEMA = schema_name 

    参数解释:

    • user_name:是创建的数据库用户的名字,该名字在数据库中是唯一的,用于唯一标识一个用户;
    • login_name:是用户登录SQL Server实例的登录名,分为Windows域登录名和SQL Server登录名。Windows域登录名的格式是:[<domainName><loginName>] 通过SID将登录名(Login)和用户名(User)关联在一起。
    • WITH DEFAULT_SCHEMA = schema_name:指定用户默认的架构(Schema),默认的Schema是指用户在引用数据库对象时,如果省略框架名,那么SQL Server将首先从默认框架下进行查找数据库对象。

    在创建新的用户时,没有指定用户默认的架构,有三种处理方式:

    • 如果该用户是某一个Windows 用户组的成员,该组有默认的架构,那么该用户默认的架构是组的默认架构;
    • 对于sysadmin角色(Fixed Server Role)的成员,其默认的架构始终是dbo,忽略Create User命令的设置;
    • 如果用户不属于组,也不是sysadmin角色的成员,SQL Server不能确定该用户的架构,设置默认的架构名dbo;

    2,创建用户名,基于SQL Server登录

    复制代码
    CREATE LOGIN WanidaBenshoof 
    WITH PASSWORD = '8fdKJl3$nlNv3049jsKK';
    USE AdventureWorks2012;
    go
    CREATE USER Wanida 
    FOR LOGIN WanidaBenshoof 
    WITH DEFAULT_SCHEMA = Marketing;
    复制代码

    3,创建用户名,基于Windows 域登录 

    复制代码
    CREATE USER [Domain1WindowsUserBarry] 
    FOR LOGIN [Domain1WindowsUserBarry];
    use database_name
    go
    CREATE USER [Domain1WindowsGroupManagers] 
    FOR LOGIN [Domain1WindowsGroupManagers];
    复制代码

    参考文档:

    CREATE LOGIN (Transact-SQL)

    CREATE USER (Transact-SQL)

  • 相关阅读:
    android gridview画分割线,如图:
    Devexpress 之gridControl
    Devexpress 之gridControl双击行事件
    Devexpress之popupMenu
    Devexpress之dxErrorProvider
    DevExpress之lookupedit
    Devexpress 汉化 代码 zt
    Devexpress之DateEdit学习,可选择日期时 zt
    Devexpress之barManager
    devpress 很好的中文论坛
  • 原文地址:https://www.cnblogs.com/xieyulin/p/7050680.html
Copyright © 2011-2022 走看看