cuiyi's blog(崔毅 crazycy)

          記錄點滴 鑒往事之得失 以資于發展
          數據加載中……

          SQLServer Create Login/Create User/Grant Privildges to a userName

          above refer to uri

          If you want to give your user all read permissions, you could use:

          EXEC sp_addrolemember N'db_datareader', N'your-user-name'

          That adds the default db_datareader role (read permission on all tables) to that user.

          There's also a db_datawriter role - which gives your user all WRITE permissions (INSERT, UPDATE, DELETE) on all tables:

          EXEC sp_addrolemember N'db_datawriter', N'your-user-name'

           

          If you need to be more granular, you can use the GRANT command:

          GRANT SELECT, INSERT, UPDATE ON dbo.YourTable TO YourUserName
          GRANT SELECT, INSERT ON dbo.YourTable2 TO YourUserName
          GRANT SELECT, DELETE ON dbo.YourTable3 TO YourUserName

          and so forth - you can granularly give SELECT, INSERT, UPDATE, DELETE permission on specific tables. 



          by me:

          If you want to give your user permissions to execute a procedure, you could use:

          GRANT EXECUTE ON OBJECT::dbo.your_procedure_name TO N'your-user-name';

          below is a full step to create a user db_user, and give him permissions to execute a procedure to a table db_tableABC and a procedureproc_get_price_data; assuming the user's loginName is your_user_login_name

          --add a db engine login

          IF NOT EXISTS(SELECT name FROM sys.server_principals WHERE name='{your_domain\}your_user_login_name')
          CREATE LOGIN [{your_domain\}your_user_login_name] WITH PASSWORD='your_user_password'
          , DEFAULT_DATABASE = TestDB;

          --add a user to current database
          use TestDB;
          IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name='db_user')
          CREATE USER [db_user] FOR LOGIN [{your_domain\}your_user_login_name];

          --grant
          GRANT INSERT, UPDATE, SELECT, DELETE ON dbo.db_tableABC TO your_user;
          GRANT EXECUTE ON OBJECT::dbo.proc_get_price_data TO your_user;

          e.g.
          assuming a user named domain123\admin1 can access a database;

          IF EXISTS(SELECT name FROM sys.server_principals WHERE name = '[domain123\admin1]')
          BEGIN   
             IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = 'admin1')        
             BEGIN             
                  CREATE USER [admin1] FOR LOGIN [domain123\admin1];                   
             END
             GRANT INSERT, UPDATE, SELECT, DELETE ON dbo.
          db_tableABC TO admin1;  
             GRANT EXECUTE ON OBJECT::dbo.GET_PRICE_DATA TO admin1;
          END

          posted on 2013-07-11 12:52 crazycy 閱讀(729) 評論(0)  編輯  收藏 所屬分類: DBMS

          主站蜘蛛池模板: 汪清县| 永福县| 上饶县| 汕头市| 昌都县| 河间市| 宜都市| 巴青县| 阿城市| 汕头市| 北碚区| 萨嘎县| 昭苏县| 安新县| 秦皇岛市| 肃宁县| 和平区| 石屏县| 商洛市| 松潘县| 天门市| 新乡县| 泗阳县| 临漳县| 仲巴县| 西华县| 右玉县| 保靖县| 永吉县| 桂阳县| 晋城| 包头市| 庆城县| 固镇县| 易门县| 万载县| 叶城县| 金昌市| 阿拉善左旗| 涞源县| 浠水县|